objective c - str - Cocoa Touchの文字列から空白を削除するにはどうすればよいでしょうか?




str strip() python (2)

whitespaceAndNewlineCharacterSetを使用しています。 しかし、scanUpToCharactersFromSetを使用する代わりに、なぜstringByTrimmingCharactersInSetを使用しないのですか? このようなもの...

strResult = [strResult stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];

編集:これを投稿した後まで、stringByTrimmingCharactersInSetが見つかりました。

私はユーザー入力(UITextField)からの文字列の値が "空"であるかどうかを判断することを検討しています。 空白/空白の入力を避けたい場合は、 [textField.text isEqualToString:""]が十分ではないかどうかを確認してください(空白文字など)。

このStOvの投稿では、私の特定の問題に対する良い解決策の兆候があるようです。

基本的にはこのようなものになりますが、私はそこに良い方法がなければならないと思います。

NSString *strResult;
NSScanner* scanner = [NSScanner scannerWithString:textField.text];
BOOL hasValidChars = [scanner scanUpToCharactersFromSet:[NSCharacterSet whitespaceAndNewlineCharacterSet] 
                                             intoString:&strResult];

// if hasValidChars == YES, we've got nonwhite space chars collected into strResult

これは明らかに私の特定の状況でのみ機能し、最初の文字がスペースであっても、私が望むデータがあれば失敗するでしょう。 だから、私はRubyに少し甘やかされていることに気がついていますが、Cocoaの文字列をトリミングするための試行錯誤のイディオムが必要です。

ああ答えはすでにそこにある、私の謝罪:

NSStringの-stringByTrimmingCharactersInSet:それを行う:

指定された文字セットに含まれる受信側文字の両端から削除した新しい文字列を返します。

誰かがこれをやるための他の/好きな方法を持っているかどうか聞いても私はまだ興味があります。


あなたが探しているものは

[string stringByReplacingOccurrencesOfString:@" " withString:@""]

文字列の途中にある空白を削除することは、「トリミング」と呼ばれません。

定義によるトリミングはエッジから機能します。





whitespace