2012-01-03 10 views
0

アルファベットの各文字を数字に割り当てる方法がわかりません。 A = 1, B = 2などです。ユーザーがテキストフィールドに名前などと入力すると、すべての文字の数値が合計され合計として表示されます。テキストフィールドの各文字をXcodeの数字に割り当てる方法

これは最終的に私が文字の合計に基づいて特定の出力を表示できることを願っています。

乾杯、レオ

+1

宿題の場合は、質問に「宿題」タグを付けてください。 – titaniumdecoy

答えて

2

私の頭に浮かぶ最も簡単な解決策ですが、アルファベット文字の順番に基づいて増分値を割り当てる場合にのみ機能します。

// Make every letter uppercase to compare on the same scale of unicode values 
NSString * str = [yourTextField.text uppercaseString]; 

NSUInteger total = 0; 

for (int i = 0 ; i < str.length ; ++i) { 
    // 'A' unicode value is 65, so by substracting 64 you'll get 1 for A, 2 for B, 3 for C... 
    total += [str characterAtIndex:i] - 64; 
} 

NSLog(@"Total is %d", total); 

あなたはまだあなたが任意のシンボルかそこらを取得しないことを確認する必要がありますが、これはあなたの文字列内のすべての文字を合計します。

0

すべての文字で列挙型を作成します。次に、入力文字列を一度に1文字ずつループし、値を加算します。

enum { 
    A=1, 
    B=2, 
    C=3, 
    // etc... 
}; 
typedef int AlphabetIntCodes; 

は、ループのようなものを使用して:

NSMutableString *textString = [[NSMutableString alloc] initWithString:txtText.text]; 
NSString *string = [NSMutableString stringWithFormat:@"%@",textString]; 

int stringLength = textString.length; 
for (int i=0; i<stringLength; i++) { 
    string = [string characterAtIndex:i]; 
     // Find the int value from the enum, and add it to a variable... 
} 

は、各文字のint型の値を見つけるために、looping through enum valuesを参照してください。

enumを使用する必要はありません。新しいAlphabetLetter NSObjectクラスを作成し、文字とint表現の2つのプロパティを持ち、それらをNSArrayに追加して値を検索することもできます各文字はAlphabetLettersの配列を通ります。

関連する問題