2012-01-03 34 views
0

我不確定如何將每個字母分配給一個數字,例如A = 1, B = 2等。因此,當用戶在文本字段中鍵入例如名稱時,所有字母的數字值將被累加並作爲總數給出。如何將文本字段中的每個字母分配給Xcode中的某個數字

這最終會有希望讓我顯示一個基於字母總數的特定輸出。

乾杯,利奧

+1

如果這是作業,請將'homework'標籤添加到您的問題中。 – titaniumdecoy 2012-01-03 21:46:10

回答

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

用所有字母創建一個枚舉。然後一次循環輸入字符串中的一個字符,並將這些值相加。

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... 
} 

looping through enum values找到每個字母的整型值。

你不必使用枚舉,你也可以創建一個新的AlphabetLetter NSObject類,並且有兩個屬性,字母和int表示,並將它們添加到NSArray中,並查找每個字母都通過AlphabetLetters數組。

相關問題