私がこれを持っている場合:
int toSplit = 208;
それを分割する最良の方法は何ですか?
2
0
8
メソッドは次のようになります
- (NSMutableArray *) toCharArray : (NSString *) str
{
NSMutableArray *characters = [[NSMutableArray alloc] initWithCapacity:[str length]];
for (int i=0; i < [str length]; i++)
{
NSString *ichar = [NSString stringWithFormat:@"%c", [str characterAtIndex:i]];
[characters addObject:ichar];
}
return characters;
}
do {
int digit = toSplit % 10;
toSplit /= 10;
printf(@"%i", digit);
} while (toSplit > 0);
宿題ではないといいのですが。
編集:それは後方にあるので、それは有効な答えではありません...しかし、それはまだ他の人にとって有用である可能性があるので、ここに残しておきます。
私はObjective-Cの構文に慣れていませんが、次のようなものです:
void split(int toSplit)
{
if (!toSplit)
{
return;
}
split(toSplit / 10);
int digit = toSplit % 10;
printf(@"%i", digit);
}
それをひもに並べてから、引き離します。このように:
int toSplit = 208;
NSString *string = [NSString stringWithFormat: @"%i", toSplit];
NSMutableString *splitApartString = [[NSMutableString alloc] init];
for (int i = 0; i < [string length]; i++) {
NSString *substring = [string substringFromIndex: i];
[splitApartString appendFormat: @"%@\n", substring];
}
NSLog(@"%@", splitApartString); //YAY!
つまり、これが行うことは、この int を文字列に入れ、それを分割し、各文字を反復処理して、その文字から文字列を取得することです。次に、その部分文字列を NEW 文字列に追加します。
もう 1 つの方法は、部分文字列を取得する代わりに、char を取得して%c
演算子を使用することです。また、このコードを見ると、次の出力が表示されます。
> 2
> 0
> 8
> // extra space here
文字列の長さが1であるかどうかを確認する条件を追加するだけでi
、スペースを追加しないか、最後の文字を削除することができます!