如何将数字转换为 Java 中的字母?

How do I convert number to a letter in Java?

我想编写一个程序将数字转换为字母,从 0-9 到 ABCDEFGHIK。 例如: 当 n = 10 时,输出将是 BA,因为 0 是 A 是 0,B 是 1。 这是我的代码:

String convertNumber(long n) {
    String result="";
    String strN = Long.toString(n);
    for (int i=0; i < strN.length();i++){
        char ch = strN.charAt(i);
        switch(ch){
            case '0':
            result = "A";
            case '1':
            result = "B";
            case '2':
            result = "C";
            case '3':
            result = "D";
            case '4':
            result = "E";
            case '5':
            result = "F";
            case '6':
            result = "G";
            case '7':
            result = "H";
            case '8':
            result = "I";
            case '9':
            result = "K";
        }
    }
    return result;
}

可是,结果returns只有K。我哪里做错了?谢谢!

你可以使用这个:

static String convertNumber(int n) {
        int reminder;
        char[] arr = "ABCDEFGHIK".toCharArray();
        int len = arr.length;
        StringBuilder builder = new StringBuilder();
        while (n != 0) {
            reminder = (int) n % 10;
            n /= 10;
            builder.append(arr[(reminder % len)]);
        }
        return builder.toString();
    }

, 主要

  static public void main(String[] args) {
        System.out.println(convertNumber(65));
        System.out.println(convertNumber(78));
        System.out.println(convertNumber(99));
        System.out.println(convertNumber(901));
  }

,输出

FG
IH
KK
BAK

你的程序有3处错误:

  1. 不将 breakcase 一起使用,因此每个 case 都会落到最后一个 case
  2. 使用 = 代替 +=
  3. 以与所需顺序相反的顺序使用循环。应该是 for (int i = strN.length() - 1; i >= 0; i--) 而不是 for (int i=0; i < strN.length();i++)

下面是您更正后的程序:

public class Main {
    public static void main(String[] args) {
        System.out.println(convertNumber(10));
    }

    static String convertNumber(long n) {
        String result = "";
        String strN = Long.toString(n);
        for (int i = strN.length() - 1; i >= 0; i--) {
            char ch = strN.charAt(i);
            switch (ch) {
            case '0':
                result += "A";
                break;
            case '1':
                result += "B";
                break;
            case '2':
                result += "C";
                break;
            case '3':
                result += "D";
                break;
            case '4':
                result += "E";
                break;
            case '5':
                result += "F";
                break;
            case '6':
                result += "G";
                break;
            case '7':
                result += "H";
                break;
            case '8':
                result = "I";
                break;
            case '9':
                result = "K";
            }
        }
        return result;
    }
}

输出:

AB

你忘记休息了。在每种情况下添加 break;,如下所示:

case '0': result = "A"; break; case '1': result = "B"; break;