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