2017-02-26 20 views
-2

スペースを使用して入力を入力すると、このJavaスクリプトに問題があります。間隔なしで問題ありません。私は多くの編集を試みるが、まだこの問題を解決することはできません、私はgetl​​oanが結果を表示すると書いたが、 スペースでエラーを表示します。私はこれを解決するために何を追加すべきですか?スペースを入力するとエラーが表示されます

Scanner read = new Scanner(System.in); 
{ 
    System.out.println("Enter the phone number: "); 
    String telLetter = read.next(); 
    telLetter = telLetter.toUpperCase(); 
    String telNumber = " "; 
    int count = 0; 
    int i = 0; 
    while (count <7) 
    { 
     switch (telLetter.charAt(i)) 
     { 
     case 'A':case 'B':case 'C': 
      telNumber += "2"; 
      count++; 
      break; 
     case 'D':case 'E':case 'F': 
      telNumber += "3"; 
      count++; 
      break; 
     case 'G':case 'H':case 'I': 
      telNumber += "4"; 
      count++; 
      break; 
     case 'J':case 'K':case 'L': 
      telNumber += "5"; 
      count++; 
      break; 
     case 'M':case 'N':case 'O': 
      telNumber += "6"; 
      count++; 
      break; 
     case 'P':case 'R':case 'Q':case 'S': 
      telNumber += "7"; 
      count++; 
      break; 
     case 'T':case 'U':case 'V': 
      telNumber += "8"; 
      count++; 
      break; 
     case 'W':case 'X':case 'Y':case 'Z': 
      telNumber += "9"; 
      count++; 
      break; 
     } 
     if (count == 3) 
      telNumber += "-"; 
     i++; 
    } 
    System.out.println(telNumber); 
} 

Output

+1

これはJavascriptですか? Javaのように思えます。 –

+0

コードを共有しないと、私たちがあなたを助けることはできません。 – Mureinik

+0

申し訳ありません!ここに行く! –

答えて

0

Scanner.next()はあなたgetなくget loanを与えるだろうし、あなたが7つの有効な文字を処理するために、あなたのループをハードコードしているので、それは失敗します。スキャナは、デフォルトで空白を区切ります。

+0

@KhengHuatLimもう一度、その情報をScanner javadocで利用できます。ここにリストされている方法のどれがhttp://docs.oracle.com/javase/8/docs/api/java/util/Scanner.htmlで次の行を返す可能性がありますか? –

+0

よろしいですか?私はあなたが意味するものを手に入れました!どうもありがとう! –

0

新しい行で区切りたい場合は、next()の代わりにnextLine()を使用してください。

+0

ありがとう!これは私に多くの助けになる!空白を使った私の出力には438 - 5626の倍精度があります。 –

+0

trim()を使って空白を取り除き、 ' - 'を '-'で置き換えます。 –

関連する問題