2016-08-01 13 views
0

@"Greetings from Capt. Ashim Mittra,​ Vice President – Flight Operations"のような文字列があります。この文字列から「Capt。 Ashim Mittra "私は「から」という言葉から始まり、「」(カンマ)目的関数cの動的文字列から部分文字列を抽出する方法は?

+1

表示コードを。 –

+0

'substringWithRange'と' rangeOfString: 'を使うことができます。 「大胆な」UIについては、それは依存しています。太字のテキストがある場合は 'NSAttributedString'を使用するか、' UILabel'/'UITextView'の' font'プロパティを使うだけです... – Larme

+0

正規表現の使用はどうですか? – Eiko

答えて

0

NSString *str = @"Greetings from Capt. Ashim Mittra,​ Vice President – Flight Operations"; 

NSRange range1 = [str rangeOfString:@"from"]; 
NSRange range2 = [str rangeOfString:@","]; 
NSRange rangeToSubString = NSMakeRange(range1.location + range1.length, range2.location - range1.location - range1.length); 

NSString *resultStr = [str substringWithRange:rangeToSubString]; 

NSLog(@"path1 : %@",resultStr); 

あなたのラベルまたは他のあなたは太字部分のようなものを使用してテキストを表示したいときに起因するテキストを設定することができ、

UIFont *font = [UIFont boldSystemFontOfSize:17.0]; // whatever size, can use diiferent font with different method 

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:font,NSFontAttributeName, nil]; 

NSMutableAttributedString *resultStrWithBold = [[NSMutableAttributedString alloc]initWithString:str]; 

[resultStrWithBold setAttributes:dict range:rangeToSubString]; 

yourLabel.attributedText = resultStrWithBold; 
1

使用するには、このコードを読みたい、すなわち:

NSString * yourStr = @"Greetings from Capt. Ashim Mittra,​ Vice President – Flight Operations"; 
NSRange range1 = [yourStr rangeOfString:@"from"]; 
NSRange range2 = [yourStr rangeOfString:@","]; 
NSRange rangeSubString = NSMakeRange(range1.location + range1.length, range2.location - range1.location - range1.length); 
NSString *finalString = [yourStr substringWithRange: rangeSubString]; 

が大胆に使用し、これを作るためには、あなたが好きな何かを行うことができます

NSMutableAttributedString * yourAttributedString = [[NSMutableAttributedString alloc] initWithString: finalString]; 
[yourAttributedString addAttribute: NSFontAttributeName value:[UIFont boldSystemFontOfSize:12] range:NSMakeRange(0,finalString)]; 
[yourLbl setAttributedText: yourAttributedString]; 
+0

いいえエラーチェック! – Droppy

2

正規表現を使用して名前を見つけることができます。例:

​​

これはおそらくかなり改善する必要がありますが、適切な調整を行うには入力データをすべて確認する必要があります。入力文字列にはいくつかの名前があります。

-1

あなたは以下のコードを使用することができます。あなたがそうしようとした

- (void)viewDidLoad { 
[super viewDidLoad]; 
NSString *str = @"Greetings from Capt. Ashim Mittra ,​ Vice President – Flight Operations"; 
NSString *fromString = @"from"; 
NSString *toString = @","; 

NSArray *seperatorArr = [[NSArray alloc] initWithObjects:fromString, toString, nil]; 
NSString *reqStr = [self extractSubstringFrom:str seperatedBy:seperatorArr]; 
} 

- (NSString *)extractSubstringFrom:(NSString *)string seperatedBy:(NSArray *)seperatorArray { 

NSString *resultingString = string; 

for (int i = 0; i < seperatorArray.count; i++) { 
    NSArray *newStrArr = [resultingString componentsSeparatedByString:[seperatorArray objectAtIndex:i]]; 
    if (i == seperatorArray.count - 1) { 
     resultingString = [newStrArr firstObject]; 
    } 
    else 
     resultingString = [newStrArr lastObject]; 
} 
NSLog(@"Resulting String = %@",resultingString); 
return resultingString; 

}

関連する問題