因此我必須編寫一個模擬電話鍵盤的程序,而它會將一串文本轉換爲整數:abc(2),def(3),ghi(4),jkl( 5),mno(6), pqrs(7),tuv(8),wxyz(9)。除輸出之間必須有數字之間的連字符( - )。連字符之間的每個整數
示例輸入:Alabama
輸出:2-5-2-2-2-6-2
但我就是隻輸出2522262
。我將如何正確地格式化?
public class Keypad {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter a string: ");
String s = sc.nextLine();
System.out.println(getNumbers(s));
}
public static String getNumbers(String s) {
String result = new String();
for (int i = 0; i < s.length(); i++) {
if (Character.isLetter(s.charAt(i))) {
result += getNumber(Character.toUpperCase(s.charAt(i)));
}
else {
result += s.charAt(i);
}
}
return result;
}
public static int getNumber(char upperCaseLetter) {
int number = ((upperCaseLetter - 'A')/3) + 2;
if (number < 7) {
return number;
}
else if (upperCaseLetter - 'A' < 20) {
return 7;
}
else if (upperCaseLetter - 'A' < 23) {
return 8;
}
else {
return 9;
}
}
}
如果你使用Java 8,這個問題已經有了答案[String.join](http://stackoverflow.com/questions/1978933/a-quick-and-easy-way-to-join-array-elements -with-a-separator-the-opposite-of-sp) – 2017-03-06 20:32:23
@ÉricRoberge這是一個很好的,可以在一行中完成而不必刪除最後一個字符等。 –