2011-07-05 16 views
0

私は、UITextViewに読み込まれる.plist配列内のテキストのパラグラフ(4文)を持っています。UITextFieldでテキストを区切る方法はありますか?

デフォルトでは、それはどのようにテキストを段落の1つの大きな塊として表示します。これを分割することが可能かどうかを知りたいですか?

このような1行目のように:sdfafasfsafsa、その後、2行目:asfdsafs、3行目:adfsfsdfsdfaなど

は私が.を検索し、それに応じてラインを分離できる方法はありますか?私はplistを手作業で編集するだけですが、何百もの項目がありますので、簡単に行うことはできません。

答えて

3
NSString* tidiedString = [sourceString stringByReplacingOccurrencesOfString:@"." withString:@"\n"]; 

更新:OK、詳しくはを通じて来ているので。正規表現を使用することもできますが、使い慣れていない場合は学習曲線が少し急峻です。それ以外の場合は、他の回答と同様に、リストをクリックします。空白、空行などを処理する必要があります。次のスニペットはきれいではありませんが、仕事をします。

NSString* sourceString = @"Hyperlinks can be great. They can also dilute your focus and tempt you into putting off what you most want to do. Here I chose to place links at the foot of the page to help you to make an active choice as to whether to surf or refocus your attention elsewhere."; 

NSArray* arrayOfStrings = [sourceString componentsSeparatedByString:@"."]; 

NSMutableString* superString = [NSMutableString stringWithString:@""]; 

int lineCount = 1; 
for (NSString* string in arrayOfStrings) 
{ 
    if ([string length] < 1) continue; 

    [superString appendFormat:@"Line %d: %@.\n", lineCount++, [string stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]]]; 
} 

[superString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 

[[self userEntry] setText:superString]; 
+0

Matthewに感謝します。しかし、1行目、2行目などを追加するにはどうすればよいですか? – Jon

+0

複数の '.'sがある場合は複数の行になります。 – PengOne

+0

ええと、' '行1:"、 "行2:" 'などの実際のテキストがあります。 – Jon

0

配列全体を実行し、すべての行をUITextViewと@ "\ n"に加えたループを作成してみてください。

だから、何かのよう...:

NSString *curText = txtView.text; 
NSString *lineBreak = @"\n"; 
txtView.text=[NSString stringWithFormat:@"%@ + %@", curText, lineBreak]; 

それとも、@でドットを置き換える "\ n" は。

3
NSArray *array = [sourceString componentsSeparatedByString:@"."]; 

NSMutableString *resultString= [[NSMutableString alloc] init]; 
int linecount=1; 
for(NSString *lines in array) 
{ 
    [resultString appendString:[NSString stringWithFormat:@"Line%i:%@\n",linecount++,lines]]; 
} 

NSLog(@"resultString:%@",resultString); 

これは役に立ちます。

+0

ありがとうDileep。しかし何らかの理由で毎回余分な行を1つ追加し続けているので、4行しかないときは余分な '行5 'があります。 – Jon

+0

if(![lines isEqualToString:@ ""])forループにこの条件を入れます。 –

+0

それはどうしたのですか? – Jon

関連する問題