我在Objective-C中尋找一種簡單的方法,在字符串的每2個字符之間添加一個空格。所以「12345678」會變成「12 34 56 78」。NSString填充/ 2個字符之間的空格
其他方式,將字符串(一個128位長的字符串與所有數字)轉換爲每2個字符的數組。
有誰知道有什麼可以幫助我嗎?
謝謝。 - 伊萊
我在Objective-C中尋找一種簡單的方法,在字符串的每2個字符之間添加一個空格。所以「12345678」會變成「12 34 56 78」。NSString填充/ 2個字符之間的空格
其他方式,將字符串(一個128位長的字符串與所有數字)轉換爲每2個字符的數組。
有誰知道有什麼可以幫助我嗎?
謝謝。 - 伊萊
試試這個:
NSString *str = @"12345678";
NSMutableString *tempStr = [[NSMutableString alloc] init];
for (int position=0; position < str.length; position++) {
if(position%2==0)
{
[tempStr appendString:[NSString stringWithFormat:@"%c",[str characterAtIndex:position]]];
}
else
{
[tempStr appendString:[NSString stringWithFormat:@"%c",[str characterAtIndex:position]]];
NSLog(@"%@\n",tempStr);
[tempStr setString:@""];
}
}
[tempStr release];
非常感謝你@Guru!它的工作原理! – 2013-02-23 09:24:18
這會調用未定義的行爲。 ' - [NSString characterAtIndex:]'返回'unichar',格式說明符是'%C'而不是'%c'。 – 2013-02-23 11:06:25
感謝您的信息先生...它與%c也..一路暢快謝謝! – Guru 2013-02-23 11:12:21
試試這個:
NSString *str = @"12345678";
NSMutableString* mStr= [NSMutableString string];
for(NSUInteger i=0 ; i<str.length; i++)
{
[mStr appendString: [str substringWithRange: NSMakeRange(i,1)]];
if(i%2 && i!=0)
{
[mStr appendString: @" "];
}
}
NSLog(@"%@",mStr);
因爲你似乎已經走到了一個解決方案,這只是另一個例子(在那個沒有一個特別有效的一種)它是如何完成的。該版本正確處理奇數個字符;
NSString *original = @"192190129";
NSMutableString *result = [NSMutableString stringWithCapacity:2*original.length];
for (int pos=0; pos < original.length; pos++) {
NSString *formatToAppend = (pos && !(pos & 1)) ? @" %C" : @"%C";
[result appendString:[NSString stringWithFormat:formatToAppend,
[original characterAtIndex:pos]]];
}
>>> "19 21 90 12 9"
寫作(或至少閱讀和理解)這樣的代碼自己是很好的鍛鍊,如果你是一個初學者,也有做的許多方面,所以你可以嘗試一些方法,看看有什麼碼你喜歡的風格。
一個NSMutableString和一個循環? – 2013-02-23 08:46:03
你能教我如何做到這一點?我是Objective-C的新手,謝謝! @JoachimIsaksson – 2013-02-23 08:51:40
@EliLien你必須自己做點努力。接受你從Joachim得到的提示並閱讀「NSMutableString」的文檔。這是**微不足道的**,只需要一些簡單的算法思維。 – 2013-02-23 08:53:47