用java简单写下列代码设有3个数组内容如下: String x[]={"zero","one","two", "three",four", "five","six",seven","eight","nine"} ; String y[]={ten","eleven","twelve","thirteen","fourteen","fifteen", "sixteen","seventeen","eighteen","nineteen" }; String z[]={"twenty","thirty","fourty","fifty", "sixty","seventy", "eighty","ninety" }; 用Java命令行输入或在Eclipse中设置参数一个小于100的整数,将其翻成英文表示。 例如: 输入32,输出:thirty two 输入14,输出:fourteen 输入8, 输出:eight 反之,输入英文表示,输出相应的整数。
时间: 2023-06-28 17:14:21 浏览: 66
这是一个和前面问题一样的问题,我已经回答了。以下是用Java实现的代码,可以处理从数字到英文的转换和从英文到数字的转换。
```java
import java.util.HashMap;
public class NumberConverter {
private static final String[] ONES = {"", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
private static final String[] TENS = {"", "", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"};
private static final String[] TEENS = {"ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"};
private static final HashMap<String, Integer> NUMBER_MAP = new HashMap<>();
static {
for (int i = 0; i < ONES.length; i++) {
NUMBER_MAP.put(ONES[i], i);
}
for (int i = 2; i < TENS.length; i++) {
NUMBER_MAP.put(TENS[i], i * 10);
}
for (int i = 0; i < TEENS.length; i++) {
NUMBER_MAP.put(TEENS[i], i + 10);
}
}
public static String convertToText(int number) {
if (number < 0 || number >= 100) {
throw new IllegalArgumentException("number must be between 0 and 99");
}
if (number < 10) {
return ONES[number];
} else if (number < 20) {
return TEENS[number - 10];
} else {
int tens = number / 10;
int ones = number % 10;
return TENS[tens] + " " + ONES[ones];
}
}
public static int convertToNumber(String text) {
Integer number = NUMBER_MAP.get(text);
if (number != null) {
return number;
}
String[] parts = text.split(" ");
if (parts.length == 2) {
int tens = NUMBER_MAP.get(parts[0]);
int ones = NUMBER_MAP.get(parts[1]);
return tens + ones;
} else {
throw new IllegalArgumentException("invalid input: " + text);
}
}
public static void main(String[] args) {
if (args.length != 1) {
System.out.println("Usage: java NumberConverter <number or text>");
return;
}
String input = args[0];
try {
int number = Integer.parseInt(input);
System.out.println(convertToText(number));
} catch (NumberFormatException e) {
System.out.println(convertToNumber(input));
}
}
}
```
在命令行输入一个小于100的整数,可以得到对应的英文表示。例如,输入32,输出为 "thirty two"。
如果输入的是英文表示,可以得到对应的整数。例如,输入 "fourteen",输出为 14。