0

我正在尝试获取一个字符串(@“12345”)并提取每个单独的字符并转换为它的十进制等效值。

@"1" = 1 @"2" = 2 等等。

这是我到目前为止所拥有的:

...
[self ArrayOrder:@"1234"];
...

-(void)ArrayOrder(Nsstring *)Directions
 {



   NSString *singleDirections = [[NSString alloc] init];

   //Loop Starts Here

   *singleDirection = [[Directions characterAtIndex:x] intValue];

   //Loop ends here


 }

我一直收到类型错误。

4

1 回答 1

0

您的代码的问题是[Directions characterAtIndex:x]返回unichar一个 Unicode 字符。

相反,您可以使用 NSRange 和子字符串从字符串中获取每个数字:

NSRange range;
range.length = 1;
for(int i = 0; i < Directions.length; i++) {
    range.location = i;
    NSString *s = [Directions substringWithRange:range];
    int value = [s integerValue];
    NSLog(@"value = %d", value);
}

另一种方法是使用/ 10% 10分别从字符串中获取每个数字。如:

NSString* Directions = @"1234";
int value = [Directions intValue];
int single = 0;
while(value > 0) {
    single = value % 10;
    NSLog(@"value is %d", single);
    value /= 10;
}

但是,这会向后通过您的字符串。

于 2013-09-30T01:39:09.770 回答