Iphone 如何将NSString的每个字符添加到NSArray中?

Iphone 如何将NSString的每个字符添加到NSArray中?,iphone,ios,nsstring,components,nsarray,Iphone,Ios,Nsstring,Components,Nsarray,我正在寻找一种传递NSString的方法,NSString包含4个字符,这些字符总体上表示一个4位数的数字,如0741。我一直在四处寻找并不断遇到这个函数 myArray = [dataString componentsSeparatedByString:@"\r\n"]; 由字符串分隔的组件。。。如果我的组件没有分开,我该怎么办 好吧,在查看下面发布的链接后,我找到了NSRange,并成功地使其与下面的解决方案完美配合,但它感觉有点拖拉,可能比需要的体积更大。。。让我知道你的想法和我可以做什

我正在寻找一种传递NSString的方法,NSString包含4个字符,这些字符总体上表示一个4位数的数字,如0741。我一直在四处寻找并不断遇到这个函数

myArray = [dataString componentsSeparatedByString:@"\r\n"];
由字符串分隔的组件。。。如果我的组件没有分开,我该怎么办

好吧,在查看下面发布的链接后,我找到了NSRange,并成功地使其与下面的解决方案完美配合,但它感觉有点拖拉,可能比需要的体积更大。。。让我知道你的想法和我可以做什么改进

NSRange MyOneRange = {0, 1};
    NSRange MyTwoRange = {1, 1};
    NSRange MyThreeRange = {2, 1};
    NSRange MyFourRange = {3, 1};

    NSString *firstCharacter = [[NSString alloc] init];
    NSString *secondCharacter = [[NSString alloc] init];
    NSString *thridCharacter = [[NSString alloc] init];
    NSString *fourthCharacter = [[NSString alloc] init];

    firstCharacter = [myFormattedString substringWithRange:MyOneRange];
    secondCharacter = [myFormattedString substringWithRange:MyTwoRange];
    thridCharacter = [myFormattedString substringWithRange:MyThreeRange];
    fourthCharacter = [myFormattedString substringWithRange:MyFourRange];


    NSLog(@"%@, %@, %@, %@", firstCharacter, secondCharacter, thridCharacter, fourthCharacter);

你有很多选择。。。这就是开始的方法。我建议阅读NSString文档(有一部分方法称为“获取字符和字节”)。

类似的方法应该可以很好地工作:

NSString *dataString = @"0741";
NSMutableArray *characters = [[NSMutableArray alloc] initWithCapacity:[dataString length]];
for (int i = 0; i < [dataString length]; i++) {
    NSString *singleCharacter  = [NSString stringWithFormat:@"%c", [dataString characterAtIndex:i]];
    [characters addObject:singleCharacter];
}
NSString*dataString=@“0741”;
NSMutableArray*字符=[[NSMutableArray alloc]initWithCapacity:[dataString length]];
对于(int i=0;i<[dataString length];i++){
NSString*singleCharacter=[NSString stringWithFormat:@“%c”,[dataString characterAtIndex:i]];
[characters addObject:singleCharacter];
}

即兴发挥你的方法

NSRange theRange = {0, 1};
NSMutableArray * array = [NSMutableArray array];
for ( NSInteger i = 0; i < [myFormattedString length]; i++) {
    theRange.location = i;
    [array addObject:[myFormattedString substringWithRange:theRange]];
}
NSRange theRange={0,1};
NSMutableArray*数组=[NSMutableArray];
对于(NSInteger i=0;i<[myFormattedString长度];i++){
theRange.location=i;
[array addObject:[myFormattedString substringWithRange:theRange]];
}

问题:由
-characterAtIndex:
返回的数据类型的大小对于格式说明符
“%c”
是错误的
-characterAtIndex:
返回一个
unichar
(实际上是一个宽泛的字符,就像
wchar\u t
),而不是
char
。请参阅@Deepak使用
-substringWithRange:
的方法,该方法在整个过程中使用
NSString
抽象,而不是依赖于底层字符表示。使用此方法,我可以更改“NSString*singleCharacter=[NSString stringWithFormat:@”%c,[dataString characterAtIndex:I];”要将characterAtIndex:i转换为整数?是的,我建议使用@Deepak的方法,因为它读起来更简单(一旦理解了NSRange的巧妙技巧):)感谢此链接的帮助,这是我目前解决问题的方法。+1…但您有一个输入错误。NSString没有计数方法…我想你是说length@deepak你能解释一下字符串中的流吗?