我試圖將其從輸入框更改爲Scanner類,但我在這樣做時遇到問題。從輸入更改爲掃描儀
其中一個程序,需要的話,並把它們成爲一個電話號碼在這裏是這樣做的代碼。任何幫助將不勝感激,如果有什麼我可以做的回報,我會很樂意這樣做。
// declare imports
import java.util.Scanner;
import javax.swing.JOptionPane;
import java.util.*;
public class Telephone {
public static void main(String[] args) {
// ask for the phone number (in letters)
char letter;
String inputMessage = "Please enter the number in Letters " + "or enter '#' to stop the program ";
String inputString = JOptionPane.showInputDialog(inputMessage);
String outputString = "";
String outputMessage = "";
int digit = 0;
int x = 0;
for (int i = 0; i < inputString.length(); i++)
System.out.print(inputString.charAt(x)); {
while (inputString.charAt(x) != '#') {
letter = Character.toUpperCase(inputString.charAt(x));
x++;
// make sure its not a number
if (letter >= 'a' && letter <= 'z') if (letter >= 'A' && letter <= 'Z') {
digit++;
switch (letter) {
case 'A':
case 'B':
case 'C':
outputString += "2";
break;
case 'D':
case 'E':
case 'F':
outputString += "3";
break;
case 'G':
case 'H':
case 'I':
outputString += "4";
break;
case 'J':
case 'K':
case 'L':
outputString += "5";
break;
case 'M':
case 'N':
case 'O':
outputString += "6";
break;
case 'P':
case 'Q':
case 'R':
case 'S':
outputString += "7";
break;
case 'T':
case 'U':
case 'V':
outputString += "8";
break;
case 'W':
case 'X':
case 'Y':
case 'Z':
outputString += "9";
}
if (digit == 7) {
break;
}
if (digit == 3) {
outputString += "-";
}
}
inputMessage = "Enter another set of telephone letters";
}
JOptionPane.showMessageDialog(null, outputString, "Telephone Program", JOptionPane.PLAIN_MESSAGE);
}
你爲什麼不嘗試縮進代碼?它確實有助於可讀性... – ChristopheD
歡迎來到SO。請閱讀[常見問題]和[問]以獲得編寫好問題的提示。首先,SO不是一個論壇,您可以在其中提出「幫助我改進我的代碼」等不重要的問題,或者「告訴我什麼是錯誤的」,而不提供代碼本身以外的任何細節。請告訴我們您遇到的問題,並顯示您迄今爲止解決問題所做的工作。 –
順便說一句:也許你會考慮使用字符的ascii值來避免大規模切換的情況。 'A'是65,'B'66等等。除最後一個區塊外,其餘所有區塊都是3 ..(v-65)/ 3)+2或somethinkg都應該爲最後區塊之外的所有區塊都返回正確的數字。 – LostAvatar