3

数式から数値を取得する必要があるため、「結果」という名前の文字列があります。式は NSString として指定されます。[NSString componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:]コンポーネントを含む NSArray を提供するメソッド method を使用しますが、少し疑問があります。コードは次のとおりです。

NSString *result=[obj computeTheExp:@"+19+55/23-42*3-34-"];

私はそれにこの方法を使用します

NSArray *operands = [inputString componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"+-/*"]];

を使用してオペランドの内容を表示すると

NSLog(@"%i",[operands count]);

    for(i=0;i<[operands count];i++)
    {
        NSLog(@"%@",[operands objectAtIndex:i]);
    }

コンソールでこれを取得します

2013-08-05 16:47:52.967 mathExpTest[6708] 8
2013-08-05 16:47:52.992 mathExpTest[6708]
2013-08-05 16:47:53.002 mathExpTest[6708] 19
2013-08-05 16:47:53.012 mathExpTest[6708] 55
2013-08-05 16:47:53.022 mathExpTest[6708] 23
2013-08-05 16:47:53.032 mathExpTest[6708] 42
2013-08-05 16:47:53.042 mathExpTest[6708] 3
2013-08-05 16:47:53.052 mathExpTest[6708] 34
2013-08-05 16:47:53.062 mathExpTest[6708]

カウントは 6 であるべきではありませんか? また、表示にギャップがあるのはなぜですか?

4

2 に答える 2

2

この動作は正常です。ドキュメントから:「文字列が区切り文字で始まるか終わる場合、それぞれ最初または最後の部分文字列は空です」http://developer.apple.com/library/ios/#documentation/cocoa/reference/foundation/Classes/ NSString_Class/Reference/NSString.html -

于 2013-08-05T11:50:04.597 に答える