【Java开发实例】Java 实现0-99转英文工具类

110 阅读3分钟

废话不多说,直接上源码展示完整演示内容:❀

一、完整源码示例

(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();
    }

}

结果演示:

image.png

二、提取核心工具类 ⭐

/**
     * 将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;
    }
}