簡體   English   中英

如何從NSString獲取單個NSString字符

[英]How to get a single NSString character from an NSString

我想從NSString中的某處獲取字符。 我希望結果是一個NSString。

這是我用來獲取單個字符索引的代碼:

[[s substringToIndex:i] substringToIndex:1]

有更好的方法嗎?

這還將檢索索引i處的字符作為NSString,並且您僅使用NSRange結構而不是額外的NSString。

NSString * newString = [s substringWithRange:NSMakeRange(i, 1)];

如果您只想從NSString中獲取一個字符,則可以嘗試此操作。

- (unichar)characterAtIndex:(NSUInteger)index;

像這樣使用:

NSString *originalString = @"hello";
int index = 2;
NSString *theCharacter = [NSString stringWithFormat:@"%c", [originalString characterAtIndex:index-1]];
//returns "e".

您的建議僅適用於ASCII之類的簡單字符。 NSStrings存儲unicode,如果您的字符是幾個unichars,那么您最終可能會胡言亂語。 使用

- (NSRange)rangeOfComposedCharacterSequenceAtIndex:(NSUInteger)index;

如果要確定您的角色有多少個單字符。 我用它來遍歷字符串以確定字符邊界出現的位置。

完全具備Unicode能力是一項工作,但是取決於您使用的語言。 我看到了很多亞洲文字,所以大多數字符都是從一個空格溢出的,所以這是我需要做的工作。

NSMutableString *myString=[NSMutableString stringWithFormat:@"Malayalam"];
NSMutableString *revString=@"";

for (int i=0; i<myString.length; i++) {
    revString=[NSMutableString stringWithFormat:@"%c%@",[myString characterAtIndex:i],revString];
}
NSLog(@"%@",revString);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM