Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.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_Linked List_Hashmap - Fatal编程技术网

将字符串数字字转换为字符串数字:Java

将字符串数字字转换为字符串数字:Java,java,string,linked-list,hashmap,Java,String,Linked List,Hashmap,我是一名初级程序员,正在尝试使用文字转换器,它应该是这样工作的:Input=“零;六;八;二”Output=“0682”。但在我的例子中,我得到的输出是“0282”。有什么解决办法吗?或者我应该换个程序?。我发现LinkedList或HashMap可以工作,如果可以的话,你能告诉我怎么做吗 Scanner scanner = new Scanner(System.in); String number = scanner.next(); while (true) {

我是一名初级程序员,正在尝试使用文字转换器,它应该是这样工作的:Input=“零;六;八;二”Output=“0682”。但在我的例子中,我得到的输出是“0282”。有什么解决办法吗?或者我应该换个程序?。我发现LinkedList或HashMap可以工作,如果可以的话,你能告诉我怎么做吗

Scanner scanner = new Scanner(System.in);
    String number = scanner.next();
            while (true) {
                String num = "";
                if(number.contains("zero"))
                    num = num + "0";
    
                if (number.contains("one"))
                    num = num + "1";
    
                if (number.contains("two"))
                    num = num +"2";
    
                if (number.contains("three"))
                    num = num + "3";
    
                if(number.contains("four"))
                    num = num + "4";
    
                if(number.contains("five"))
                    num = num + "5";
    
                if(number.contains("six"))
                    num = num + "6";
    
                if(number.contains("seven"))
                    num = num + "7";
    
                if(number.contains("eight"))
                    num = num + "8";
    
    
                System.out.println(number);
                System.out.println(num);
                break;
    
            }

您应该在
上拆分分号分隔的输入,然后在循环中迭代每个术语:

Scanner Scanner=新的扫描仪(System.in);
字符串输入=scanner.next();
字符串[]nums=input.split(“;”);
字符串num=“”;
用于(字符串编号:nums){
如果(“零”。等于(数字))
num=num+“0”;
如果(“一”。等于(数字))
num=num+“1”;
否则,如果(“两个”。等于(数字))
num=num+“2”;
否则,如果(“三”。等于(数字))
num=num+“3”;
否则,如果(“四”。等于(数字))
num=num+“4”;
否则,如果(“五”。等于(数字))
num=num+“5”;
否则,如果(“六”。等于(数字))
num=num+“6”;
否则,如果(“七”。等于(数字))
num=num+“7”;
否则,如果(“八”。等于(数字))
num=num+“8”;
如果(“九”。等于(数字))
num=num+“9”;
}
System.out.println(“输入:”+输入);
System.out.println(“输出:+num”);
对于<代码>零的输入;六,;八,;两个
这是上述脚本的输出:

input:  zero;six;eight;two
output: 0682

您应该在
上拆分分号分隔的输入,然后在循环中迭代每个术语:

Scanner Scanner=新的扫描仪(System.in);
字符串输入=scanner.next();
字符串[]nums=input.split(“;”);
字符串num=“”;
用于(字符串编号:nums){
如果(“零”。等于(数字))
num=num+“0”;
如果(“一”。等于(数字))
num=num+“1”;
否则,如果(“两个”。等于(数字))
num=num+“2”;
否则,如果(“三”。等于(数字))
num=num+“3”;
否则,如果(“四”。等于(数字))
num=num+“4”;
否则,如果(“五”。等于(数字))
num=num+“5”;
否则,如果(“六”。等于(数字))
num=num+“6”;
否则,如果(“七”。等于(数字))
num=num+“7”;
否则,如果(“八”。等于(数字))
num=num+“8”;
如果(“九”。等于(数字))
num=num+“9”;
}
System.out.println(“输入:”+输入);
System.out.println(“输出:+num”);
对于<代码>零的输入;六,;八,;两个
这是上述脚本的输出:

input:  zero;six;eight;two
output: 0682

在这里,我更喜欢使用
HashMap
。首先,您可以将数字映射初始化为文本,将数字映射为int;像

private static Map<String, Integer> digitDict = new HashMap<>();
static {
    digitDict.put("zero", 0);
    digitDict.put("one", 1);
    digitDict.put("two", 2);
    digitDict.put("three", 3);
    digitDict.put("four", 4);
    digitDict.put("five", 5);
    digitDict.put("six", 6);
    digitDict.put("seven", 7);
    digitDict.put("eight", 8);
    digitDict.put("nine", 9);
}

在这里,我更喜欢使用
HashMap
。首先,您可以将数字映射初始化为文本,将数字映射为int;像

private static Map<String, Integer> digitDict = new HashMap<>();
static {
    digitDict.put("zero", 0);
    digitDict.put("one", 1);
    digitDict.put("two", 2);
    digitDict.put("three", 3);
    digitDict.put("four", 4);
    digitDict.put("five", 5);
    digitDict.put("six", 6);
    digitDict.put("seven", 7);
    digitDict.put("eight", 8);
    digitDict.put("nine", 9);
}