重複の可能性:
NSStringをNSNumberに変換する方法
NSString
(@ "Five"など)をNSNumber
(5)に変換するにはどうすればよいですか。Stack Overflowでこれに答える質問があるかどうかを確認しましたが、多くの人が数値から文字列への変換を求めているようです。その逆ではありません。
重複の可能性:
NSStringをNSNumberに変換する方法
NSString
(@ "Five"など)をNSNumber
(5)に変換するにはどうすればよいですか。Stack Overflowでこれに答える質問があるかどうかを確認しましたが、多くの人が数値から文字列への変換を求めているようです。その逆ではありません。
いくつかの理由から、このための組み込み機能はありません。
1) あいまいです。(年)という2013
と、「二千三十三」、「二千一三」、「二十三」、「二十三」などと言うかもしれません。
2) ローカライズが容易ではない。数字を声に出して話すための規則は言語によって大きく異なります (したがって、単一の規則セットをすべてのロケールに実際に使用することはできません)。Apple は、世界中で使用できる API のみを提供しています。この地球上のほとんどの人は英語を話せません。
3) ユーザーが正しく綴ることができることを前提としています。「40」は数字ではありません。「四十」です。
なぜこれをやろうとしているのか(つまり、目標は何か)を教えていただければ、より良いアプローチを提案できるでしょうか?
これは大まかに動作し、少なくとも開始する必要があります。
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
formatter.numberStyle = NSNumberFormatterSpellOutStyle;
NSArray *testStrings = @[@"Five",@"twenty-four",@"Nineteen",@"One hundred forty-two"];
for (NSString *test in testStrings) {
NSNumber *result = [formatter numberFromString:[test lowercaseString]];
NSLog (@"String %@ -> %@ as number",test,result);
}
考慮すべき点:
それが役立つことを願っています。
NSNumberFormatter * f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber * myNumber = [f numberFromString:@"42"];
お役に立てれば..