Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将文本形式中的数字转换为数字?_Java_String_Integer - Fatal编程技术网

Java 如何将文本形式中的数字转换为数字?

Java 如何将文本形式中的数字转换为数字?,java,string,integer,Java,String,Integer,如果您在文本格式行中输入任何数字,例如“二十七”,则输出为27的代码是什么 但有了这段代码,它需要时间才能达到数百万美元,这就是为什么我想知道可以做些什么来提高效率 import java.util.Scanner; public class conversion { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.o

如果您在文本格式行中输入任何数字,例如“二十七”,则输出为27的代码是什么

但有了这段代码,它需要时间才能达到数百万美元,这就是为什么我想知道可以做些什么来提高效率

import java.util.Scanner;
public class conversion {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

            System.out.println("Enter A Number In Text Form: ");
            String inp = input.nextLine();

        if (inp.equals("zero")) { 
            System.out.println("0");
        } else if (inp.equals("one")) {
            System.out.println("1");
        } else if (inp.equals("two")) {
            System.out.println("2"); 
        } else if (inp.equals("three")) {
            System.out.println("3");
        } else if (inp.equals("four")) {
            System.out.println("4");
        } else if (inp.equals("five")) {
            System.out.println("5");
        } else if (inp.equals("six")) {
            System.out.println("6");
        } else if (inp.equals("seven")) {
            System.out.println("7");
        } else if (inp.equals("eight")) {
            System.out.println("8");
        } else if (inp.equals("nine")) {
            System.out.println("9");

        } 
    }
}

使用所有可能但最小的组合创建字典映射: e、 g var dics={20:20,2:2}

现在可以按空格分割输入字符串。然后尝试建立一个逻辑来利用这些值


这肯定会很复杂,但是的,这是可能的。

您可以使用
split
函数将字符串拆分为一个数组。
然后循环它

String[]inps=inp.split(“”);
剩余int=inps.length;
字符串outsr=“”;
用于(字符串numstr:inps)
{
剩余--;
整数位数=0;
switch(numstr.toLowerCase())//在JDK7中,可以在switch中使用字符串
{
案例“二十”:超出+='2';数字=10;中断;
案例“三十”:超出+='3';数字=10;中断;
// ...
}
如果(数字=10&&剩余=0)
{
//第十位,但没有剩余
超出值+='0';
}
}
系统输出打印项次(OUTR);
publicstaticfinalstring[]tens={
"", 		// 0
"",		// 1
“二十”//2
“三十”//3
“四十”//4
“五十”//5
“六十”//6
“七十”//7
“八十”//8
“90”//9
};
公共静态字符串转换(最终整数n){
if(n<0){
返回“减”+转换(-n);
}
如果(n<20){
返回单位[n];
}
如果(n<100){
返回十个[n/10]+((n%10!=0)?“”:“”)单位+单位[n%10];
}
如果(n<1000){
返回单位[n/100]+“百”+((n%100!=0)?“”:“”)+转换(n%100);
}
如果(n<100000){
返回转换(n/1000)+“千”+((n%10000!=0)?“”:“”)+转换(n%1000);
}
如果(n<10000000){
返回转换(n/100000)+“Lakh”+((n%100000!=0)?:“”)+转换(n%100000);
}
返回convert(n/10000000)+“Crore”+((n%10000000!=0)?:“”)+convert(n%10000000);
}
公共静态void main(最终字符串[]args){
int n;
扫描仪s=新的扫描仪(System.in);
System.out.println(“输入要转换为word格式的数字”);
n=s.nextInt();
System.out.println(NumberFormat.getInstance().format(n)+“=”+convert(n)+“”);

}
我已经添加了代码这不是JavaScript代码。我建议删除JavaScript标记,这个问题需要努力。您必须分别定义1到19,然后定义20到。。。分别地我在eclipse中复制并粘贴了它,但它有错误。我如何修复它?