1

私はiPhone開発の初心者で、xcodeで非常に奇妙な問題を抱えています。何らかの理由で、文字列の末尾に末尾の空白をランダムに追加しています。私の最初の文字列値は xml から解析され、そこから文字列の最後のセクションを取得しようとします。このランダムな空白のために、これは困難であることが証明されています。どんな助けでも大歓迎です。

マイコード

//initial String 
<title>March 15 2013 Metals Commentary: Thomas Vitiello</title>

//Parsing
NSString *name = [[stories objectAtIndex: storyIndex] objectForKey: @"title"];
NSLog(@"myname: %@ %i", name, name.length);

//Log at this point
myname: March 15 PM Metals Commentary: Thomas Vitiello
         59

//Attempt at Removing Whitespace
NSArray *lastName=[name componentsSeparatedByString:@" "];
name = [[lastName objectAtIndex:6]stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
NSLog(@"myname: %@ %i", name, name.length);

//Log at this point
myname: Vitiello
9 //<--Should be 8, not 9.  This annoying whitespace is also particularly long, taking more than 1 character space, despite obviously being 1 character long.
4

3 に答える 3

3

文字列からも改行を削除しようとすることができます。文字列には、空白だけでなく改行も含まれています。

NSString *trimmmedContent = [contents stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
于 2013-03-17T18:20:14.703 に答える
2

おそらく持っていないことに注意してください<title>March 15 2013 Metals Commentary: Thomas Vitiello</title>。あなたが持っている可能性が高い:

<title>March 15 2013 Metals Commentary: Thomas Vitiello
</title>

それを防ぐオプションを使用しない限り、XML パーサーは通常、タグ間に空白を含めるため、末尾の改行が取得されます。

于 2013-03-17T18:22:06.930 に答える
1

を使用しています。whiteSpaceCharacterSetこれは次のように記述されています。

インライン空白文字スペース (U+0020) とタブ (U+0009) のみを含む文字セットを返します。

しかし、あなた自身の質問から、文字列に改行があるようです。フォーマット文字列に改行がないにもかかわらず、長さが文字列とは別の行にどのように表示されるかに注目してください。改行は、トリミングする文字の 1 つではありません。問題を解決するには、whitespaceAndNewlineCharacterSet代わりに使用します。

于 2013-03-17T18:21:38.427 に答える