2011-12-04 21 views
0

Objective-Cの文字列にすべての数字を追加しようとしていますが、わかりませんでした。例えばobjecitve cに数字の文字列を追加するには

NSString *number = @"234454875657"; 

どのようにして、一度に1つの数を引いた後、それらを追加するには?私はあなたがループを使用する必要があり、私はメソッド名characterAtIndex:(NSUInteger)インデックスを使用しようとしたが、unicharを返します知っている。また、文字列が短い場合は、intValueを取得して%10を使用して10を除算してすべての桁を加算できますが、長い文字列の場合はDoubleだけが保持できます。 %は二重値では機能しません。

答えて

0

ループとcharacterAtIndex:を使用してください。しかし、あなたが得るのは、「数字」ではなく、Unicode文字です。文字を何とか数字に変換する必要があります。これを行うには十数の方法がありますが、最も簡単なのは、文字がすべて有効な10進数であることが分かっている場合は、文字値から'0'を差し引くことです。ような何か:。

int digit = (int)([number characterAtIndex:i] - (unichar)'0'); 

(これは昇順で、ASCII/Unicodeで、小数点以下の桁が連続している、知識を利用しているユーザーが設定エトルリア文字またはそのようないくつかを使用していない限り、安全な仮定。 )

(しかし、あなたが言う、クレジットカード番号のチェックコードを計算し、これをやっている場合は、あなたが安全なそれを再生しなければならないし、何とか文字を境界は確認してください。)

1

1つの方法は、NSStringの-substringWithRange:メソッドを使用して、元の文字列から長さ1の部分文字列を引き出すことです。 NSStringの-intValueを使用して、各部分文字列の値を取得できます。

もう1つの方法として、文字列が長すぎない場合は、最初に文字列を整数に変換してから数字を加算します。

int sum = 0; 
for (long long number = [@"234454875657" longLongValue]; number > 0; number /= 10) { 
    sum += number % 10; 
} 
0
for(int i=0 < i < [str length]; i++) { 
    NSString *char = [str characterFromIndex:[str length]-1]; 
} 
関連する問題