我不知道如何解释这一点,但我需要这样的东西,我不太确定该怎么做。我有一个文本字段,用户在其中输入一个数字。例如"200"。我得到一个标签,必须显示"两百"(在单词中输入的数字)
关于如何做到这一点的任何想法?
提前感谢对不起我的英语不好
试试这个:
//textField.text is 200
NSInteger someInt = [textField.text integerValue];
NSString *numberWord;
NSNumber *numberValue = [NSNumber numberWithInt:someInt];
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterSpellOutStyle];
numberWord = [numberFormatter stringFromNumber:numberValue];
NSLog(@"numberWord= %@", numberWord); // Answer: two hundred
yourLabel.text = numberWord;
您可以使用 NSNumberFormatter 它可以将 NSNumber 转换为其单词表示形式。
NSNumber* number = @100;
NSString* textNumber;
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterSpellOutStyle];
textNumber = [numberFormatter stringFromNumber:number];
这是完全不同的东西。有点复杂和奇怪,但如果你想对输出进行更多的手动控制,你可以摆弄它。此设置提供最大为 100,000 的值(以演示条件设置)。
玩得愉快:
int theInteger = 1,123;
int convert1000 = 0;
int convert100 = 0;
int convert10 = 0;
int convert1 = 0;
NSString * wordThousand = @"Thousand";
NSString * wordHundred = @"Hundred";
NSArray *wordsArraySingleDigit = [[NSArray alloc] initWithObjects:@"Zero",@"One",@"Two",@"Three",@"Four",@"Five",@"Six",@"Seven",@"Eight",@"Nine",nil];
NSArray *wordsArrayDoubleDigit = [[NSArray alloc] initWithObjects:@"Ten",@"Eleven",@"Twelve",...,@"Ninety Eight", @"Ninety Nine",nil];
convert1000 = (theInteger - (theInteger % 1000))/1000;
convert100 = ((theInteger - (convert1000 * 1000)) - ((theInteger - (convert1000 * 1000)) % 100))/100;
convert10 = ((theInteger - (convert1000 *1000)-(convert100 *100)) - ((theInteger -(convert1000 *1000) - (convert100 *100)) % 10))/10;
convert1 = (theInteger - (convert1000 *1000)-(convert100 *100) - (convert10 *10));
if (theInteger > = 10000 && < 100000){
NSString * convertedThousand = [wordsArrayDoubleDigit objectAtIndex : convert1000];
convertedThousand = [NSString stringWithFormat: @“%@ %@“,convertedThousand,wordThousand];
NSLog (convertedThousand);
}
if (theInteger >= 1000 && <= 10000){
NSString * convertedThousand = [wordsArraySingleDigit objectAtIndex : convert1000];
convertedThousand = [NSString stringWithFormat: @“%@ %@“,convertedThousand,wordThousand];
NSLog (convertedThousand);
}
NSString * convertedHundred = [wordsArraySingleDigit objectAtIndex : convert100];
convertedHundred = [NSString stringWithFormat: @“%@ %@“, convertedHundred,wordHundred];
NSLog (convertedHundred);
NSString * convertedTen = [wordsArraySingleDigit objectAtIndex : convert10];
convertedTen = [NSString stringWithFormat: @“%@“, convertedTen];
NSLog (convertedTen);
NSString *convertedOne = [wordsArraySingleDigit objectAtIndex : convert1];
NSLog (convertedOne);
希望这有所帮助或为您提供替代方法的起点。
我认为您应该考虑每种可能性并制作一组 IF 语句,例如,如果数字的第一个数字是 3,则写"三",如果数字有 4 位数字,则显示"数千"......当然,您可以组织代码以使该过程变得简单。