我想编写一个程序,将数字转换为字母,从0-9转换为ABCDEFJIK。例如:在n = 10的情况下,输出将为AB,因为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;
}
但是,结果只返回K。我在哪里做错了?谢谢!
您可以使用这个:
static String convertNumber(int n) {
int reminder;
char[] arr = "ABCDEFJIK".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(10));
}
,输出
AB
您在case
之后缺少中断:
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";
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";
break;
}
}
return result;
}