私はしばらく立ち往生しています。私は入力した数字、空白、$ ^%## &のような特殊文字を無視する必要があります!
:ちょうど..Character.isLetter&Character.isDigitを使用して数字、空白を無視し、文字列を読み取る
エラーをアドバイスしてください..私は両方の方法を使用してみましたが...、それは私のためにうまくいかなかったCharacter.isDigit & Character.isLetterを使用して、AZその他の手紙を読んで
(スペースと数字なし)通常の出力:
予想される出力は、私は123 $ @ GetLoan ...彼らは最初の数文字を無視すべきである「123 $ @を入力しても、438から5626でなければなりません'読み込みGetLoan ..
完全な質問:ユーザーに文字で表された電話番号を入力するように促し、対応する電話番号を数字で出力するプログラムを作成します。ユーザーが7文字以上を入力した場合は、最初の7文字のみを処理します。また、3桁目の後に - (ハイフン)を出力します。ユーザーは大文字と小文字の両方、および単語間のスペースの両方を使用できます。フラグメント以下
public class Question3 {
public static void main(String[] args) {
String letters;
char phoneDigit;
Scanner kb = new Scanner(System.in);
System.out.println("Enter letters : ");
letters = kb.next();
for (int i = 0; i < 7; i++) {
phoneDigit = letters.charAt(i);
if (Character.isLetter(phoneDigit) == true) {
if (i == 3) {
System.out.println("-");
} //If
if (phoneDigit >= 'A' && phoneDigit <= 'C'
|| phoneDigit >= 'a' && phoneDigit <= 'c') {
System.out.println("2");
} else if (phoneDigit >= 'D' && phoneDigit <= 'F'
|| phoneDigit >= 'd' && phoneDigit <= 'f') {
System.out.println("3");
} else if (phoneDigit >= 'G' && phoneDigit <= 'I'
|| phoneDigit >= 'g' && phoneDigit <= 'i') {
System.out.println("4");
} else if (phoneDigit >= 'J' && phoneDigit <= 'L'
|| phoneDigit >= 'j' && phoneDigit <= 'l') {
System.out.println("5");
} else if (phoneDigit >= 'M' && phoneDigit <= 'O'
|| phoneDigit >= 'm' && phoneDigit <= 'o') {
System.out.println("6");
} else if (phoneDigit >= 'P' && phoneDigit <= 'S'
|| phoneDigit >= 'p' && phoneDigit <= 's') {
System.out.println("7");
} else if (phoneDigit >= 'T' && phoneDigit <= 'V'
|| phoneDigit >= 't' && phoneDigit <= 'v') {
System.out.println("8");
} else if (phoneDigit >= 'W' && phoneDigit <= 'Z'
|| phoneDigit >= 'W' && phoneDigit <= 'z') {
System.out.println("9");
} // If
} // If
} // For loop
} //PSVM
で述べた問題を修正しました質問の説明で正常にそれを入力して、スクリーンショットを使用して、エラーメッセージを表示しないようにしてください下に行うことによって。 –
また、どのように動作していないか、予想される出力は何か、入力は何かを教えてください。 –