好吧,我終於解決了這個問題,但我還剩下一個問題,當我在輸入字符串時被問到,如果我在程序運行時輸入的數字中放入任何空格將這些空格到我的輸出中的數字9,如果我不使用空格,一切運行良好,任何想法如何我可以阻止9被添加到我的空間?提前致謝。輸出問題Java
package chapter_9;
import java.util.Scanner;
public class Nine_Seven {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter a string: ");
String string = input.nextLine();
string = string.toUpperCase();
for (int i = 0;i<string.length();i++){
if(Character.isDigit(string.charAt(i)))
System.out.print(string.charAt(i));
else
System.out.print(getNumber(string.charAt(i)));
}
}
public static int getNumber(char uppercaseLetter){
if (uppercaseLetter == 'A' || uppercaseLetter == 'B' || uppercaseLetter == 'C')
return 2;
else if (uppercaseLetter == 'D' || uppercaseLetter == 'E' || uppercaseLetter == 'F')
return 3;
else if (uppercaseLetter == 'G' || uppercaseLetter == 'H' || uppercaseLetter == 'I')
return 4;
else if (uppercaseLetter == 'J' || uppercaseLetter == 'K' || uppercaseLetter == 'L')
return 5;
else if (uppercaseLetter == 'M' || uppercaseLetter == 'N' || uppercaseLetter == 'O')
return 6;
else if (uppercaseLetter == 'P' || uppercaseLetter == 'Q' || uppercaseLetter == 'R' || uppercaseLetter == 'S')
return 7;
else if (uppercaseLetter == 'T' || uppercaseLetter == 'U' || uppercaseLetter == 'V')
return 8;
else
return 9;
}
}
輸出例如: 輸入字符串:597 6630
597 * * 6630
您的邏輯表明您要將大寫字母轉換爲電話號碼。然而,你不限制什麼字符顯示9,而不是說它們不能是A-V。所以問問你自己,如果我通過你的程序發短信會發生什麼?按照if-then-else-if語句的順序進行跟蹤。另外,請閱讀Java switch語句。 – Marvo