废话不多说,直接上源码展示完整演示内容:❀
一、完整源码示例
(1)详细版
import java.io.IOException;
import java.util.Scanner;
/**
* 0-99的数字转成英文内容
*/
public class TestConsole {
static int times = 0;
public static void main(String[] paramArrayOfString) {
String str = "";
try {
while (true) {
str = readStringByScanner("请输入数据(输入exit表示退出):");
if ("exit".equalsIgnoreCase(str)) {
break;
}
translate(str);
}
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
public static void translate(String paramString) {
String[] arrayOfString1 = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
String[] arrayOfString2 = {"ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"};
String[] arrayOfString3 = {"twenty", "thirty", "fourty", "fifty", "sixty", "seventy", "eighty", "ninety"};
int i = -1, j = 0;
try {
i = Integer.parseInt(paramString);
} catch (Exception e) {
e.printStackTrace();
}
if ((i >= 0) && (i < 100)) {
if (i <= 9) {
System.out.println(arrayOfString1[i]);
} else if (i <= 19) {
System.out.println(arrayOfString2[(i % 10)]);
} else if (i % 10 != 0) {
System.out.println(arrayOfString3[(i / 10 - 2)] + " " + arrayOfString1[(i % 10)]);
} else {
System.out.println(arrayOfString3[(i / 10 - 2)]);
}
} else if (i >= 100) {
System.out.println("请输入0-99之间的整数!");
} else {
String str1 = paramString.trim().toLowerCase();
i = str1.indexOf(32);
if (i == -1) {
for (int k = 0; k < arrayOfString1.length; k++) {
if (str1.equals(arrayOfString1[k])) {
j = 1;
System.out.println(k);
return;
}
}
for (int k = 0; k < arrayOfString2.length; k++) {
if (str1.equals(arrayOfString2[k])) {
j = 1;
System.out.println(10 + k);
return;
}
}
for (int k = 0; k < arrayOfString3.length; k++) {
if (str1.equals(arrayOfString3[k])) {
j = 1;
System.out.println((k + 2) * 10);
return;
}
}
// 连续enter键3次,将出现此提示
if (j == 0) {
if (times == 3) {
System.out.println("悟空,别淘气了!请输入正确的32313133353236313431303231363533e4b893e5b19e31333332636364数据!");
} else {
System.out.println("请输入正确的数据!");
}
times %= 3;
times += 1;
}
} else {
String str2 = str1.substring(0, i);
String str3 = str1.substring(i + 1).trim();
for (int m = 0; m < arrayOfString3.length; m++) {
if (str2.equals(arrayOfString3[m])) {
j = 1;
break;
}
}
if (j == 0) {
if (times == 3) {
System.out.println("悟空,别淘气了!请输入正确的数据!");
} else {
System.out.println("请输入正确的数据!");
}
times %= 3;
times += 1;
} else {
j = 0;
for (int n = 0; n < arrayOfString1.length; n++) {
if (str3.equals(arrayOfString1[n])) {
j = 1;
break;
}
}
if (j == 0) {
if (times == 3) {
System.out.println("悟空,别淘气了!请输入正确的数据!");
} else {
System.out.println("请输入正确的数据!");
}
times %= 3;
times += 1;
}
}
}
}
}
public static String readStringByScanner(String paramString) throws IOException {
Scanner localScanner = new Scanner(System.in);
System.out.print(paramString);
return localScanner.nextLine();
}
}
结果展示:
请输入数据(输入exit表示退出):0
zero
请输入数据(输入exit表示退出):10
ten
请输入数据(输入exit表示退出):11
eleven
请输入数据(输入exit表示退出):99
ninety nine
请输入数据(输入exit表示退出):100
请输入0-99之间的整数!
请输入数据(输入exit表示退出):exit
Process finished with exit code 0
(2)精华版
import java.io.IOException;
import java.util.Scanner;
/**
* 0-99的数字转成英文内容
*/
public class TestConsole {
public static void main(String[] paramArrayOfString) {
String str = "";
try {
while (true) {
str = readStringByScanner("请输入数据(输入exit表示退出):");
if ("exit".equalsIgnoreCase(str)) {
break;
}
System.out.println(translate(str));
}
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
/**
* 将0~99区间的数字转成英文
*
* @param numStr 纯数字字符串
* @return 英文(例如 twenty-one)
*/
public static String translate(String numStr) {
String[] arrayOfString1 = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
String[] arrayOfString2 = {"ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"};
String[] arrayOfString3 = {"twenty", "thirty", "fourty", "fifty", "sixty", "seventy", "eighty", "ninety"};
int i = -1;
try {
i = Integer.parseInt(numStr);
} catch (Exception e) {
e.printStackTrace();
}
if ((i >= 0) && (i < 100)) {
if (i <= 9) {
return arrayOfString1[i];
} else if (i <= 19) {
return arrayOfString2[(i % 10)];
} else if (i % 10 != 0) {
return (arrayOfString3[(i / 10 - 2)] + "-" + arrayOfString1[(i % 10)]);
} else {
return (arrayOfString3[(i / 10 - 2)]);
}
} else if (i >= 100) {
System.err.println("请输入0-99之间的整数!");
return null;
} else {
return null;
}
}
public static String readStringByScanner(String paramString) throws IOException {
Scanner localScanner = new Scanner(System.in);
System.out.print(paramString);
return localScanner.nextLine();
}
}
结果演示:
二、提取核心工具类 ⭐
/**
* 将0~99区间的数字转成英文
*
* @param numStr 纯数字字符串
* @return 英文(例如 twenty-one)
*/
public static String translate(String numStr) {
String[] arrayOfString1 = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
String[] arrayOfString2 = {"ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"};
String[] arrayOfString3 = {"twenty", "thirty", "fourty", "fifty", "sixty", "seventy", "eighty", "ninety"};
int i = -1;
try {
i = Integer.parseInt(numStr);
} catch (Exception e) {
e.printStackTrace();
}
if ((i >= 0) && (i < 100)) {
if (i <= 9) {
return arrayOfString1[i];
} else if (i <= 19) {
return arrayOfString2[(i % 10)];
} else if (i % 10 != 0) {
return (arrayOfString3[(i / 10 - 2)] + "-" + arrayOfString1[(i % 10)]);
} else {
return (arrayOfString3[(i / 10 - 2)]);
}
} else if (i >= 100) {
System.err.println("请输入0-99之间的整数!");
return null;
} else {
return null;
}
}