java 将单词转换为_在Java中将单词转换为数字

我希望下面的代码可以在大多数情况下完成工作.但是可能需要进行一些修改,因为我还没有正确测试.

假设:

>不允许使用正数,负数,加号,减号.

> Lac,不允许使用crore.

>仅支持英语.

如果你需要支持前两点,你可以很容易地做到这一点.

boolean isValidInput = true;

long result = 0;

long finalResult = 0;

List allowedStrings = Arrays.asList

(

"zero","one","two","three","four","five","six","seven",

"eight","nine","ten","eleven","twelve","thirteen","fourteen",

"fifteen","sixteen","seventeen","eighteen","nineteen","twenty",

"thirty","forty","fifty","sixty","seventy","eighty","ninety",

"hundred","thousand","million","billion","trillion"

);

String input="One hundred two thousand and thirty four";

if(input != null && input.length()> 0)

{

input = input.replaceAll("-", " ");

input = input.toLowerCase().replaceAll(" and", " ");

String[] splittedParts = input.trim().split("\s+");

for(String str : splittedParts)

{

if(!allowedStrings.contains(str))

{

isValidInput = false;

System.out.println("Invalid word found : "+str);

break;

}

}

if(isValidInput)

{

for(String str : splittedParts)

{

if(str.equalsIgnoreCase("zero")) {

result += 0;

}

else if(str.equalsIgnoreCase("one")) {

result += 1;

}

else if(str.equalsIgnoreCase("two")) {

result += 2;

}

else if(str.equalsIgnoreCase("three")) {

result += 3;

}

else if(str.equalsIgnoreCase("four")) {

result += 4;

}

else if(str.equalsIgnoreCase("five")) {

result += 5;

}

else if(str.equalsIgnoreCase("six")) {

result += 6;

}

else if(str.equalsIgnoreCase("seven")) {

result += 7;

}

else if(str.equalsIgnoreCase("eight")) {

result += 8;

}

else if(str.equalsIgnoreCase("nine")) {

result += 9;

}

else if(str.equalsIgnoreCase("ten")) {

result += 10;

}

else if(str.equalsIgnoreCase("eleven")) {

result += 11;

}

else if(str.equalsIgnoreCase("twelve")) {

result += 12;

}

else if(str.equalsIgnoreCase("thirteen")) {

result += 13;

}

else if(str.equalsIgnoreCase("fourteen")) {

result += 14;

}

else if(str.equalsIgnoreCase("fifteen")) {

result += 15;

}

else if(str.equalsIgnoreCase("sixteen")) {

result += 16;

}

else if(str.equalsIgnoreCase("seventeen")) {

result += 17;

}

else if(str.equalsIgnoreCase("eighteen")) {

result += 18;

}

else if(str.equalsIgnoreCase("nineteen")) {

result += 19;

}

else if(str.equalsIgnoreCase("twenty")) {

result += 20;

}

else if(str.equalsIgnoreCase("thirty")) {

result += 30;

}

else if(str.equalsIgnoreCase("forty")) {

result += 40;

}

else if(str.equalsIgnoreCase("fifty")) {

result += 50;

}

else if(str.equalsIgnoreCase("sixty")) {

result += 60;

}

else if(str.equalsIgnoreCase("seventy")) {

result += 70;

}

else if(str.equalsIgnoreCase("eighty")) {

result += 80;

}

else if(str.equalsIgnoreCase("ninety")) {

result += 90;

}

else if(str.equalsIgnoreCase("hundred")) {

result *= 100;

}

else if(str.equalsIgnoreCase("thousand")) {

result *= 1000;

finalResult += result;

result=0;

}

else if(str.equalsIgnoreCase("million")) {

result *= 1000000;

finalResult += result;

result=0;

}

else if(str.equalsIgnoreCase("billion")) {

result *= 1000000000;

finalResult += result;

result=0;

}

else if(str.equalsIgnoreCase("trillion")) {

result *= 1000000000000L;

finalResult += result;

result=0;

}

}

finalResult += result;

result=0;

System.out.println(finalResult);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值