2

そのため、Java クラスの割り当てを行う際に問題が発生しています。目的は、switch ステートメントを使用して文字列を文字列から音声学に変換するプログラムを作成することです。つまり、A または a はアルファになります。

私が抱えている問題は、switch ステートメントが文字列の最初の空白で読み取りを停止することです。空白 (つまり " ") で停止せずに文字列を読み続けるにはどうすればよいですか?

基本的に、ユーザーは文字列「Hi Hi」を入力し、出力は「Hotel Indiana Hotel Indiana」になります。

私が抱えている問題は、少なくとも最初の空白で「ホテル インディアナ」が停止することだけです。

これは私がこれまでに持っているコードです:(スペースを節約するためにほとんどの文字/数字を切り取り、質問に答えるために最も重要だと思ったものを残しました。)

    import java.util.*;
    public class SwitchStatement {

/**
 * @param args
 */
public static void main(String[] args) {

    Scanner keyboard = new Scanner(System.in);
    System.out.println ("Enter a message: ");
    String message = keyboard.next(); 
    for(int i = 0 ; i < message.length(); i++) 
      switch(message.charAt(i)) { 
    case 'a':
    case 'A':  
        System.out.print("Alpha"); 
        break; 
    case 'b':
    case 'B':  
        System.out.print("Bravo"); 
        break;
    case ' ':  
                System.out.print(" "); 
                break;
    default:  
                System.out.print(message.charAt(i)); 
                break;
}

}
}

助けてくれてありがとう。

4

2 に答える 2

2

String message = keyboard.next(); 呼び出し時にスペース (" ") で区切られた 1 つの単語を読み取ります。

String message = keyboard.nextLine(); スペースを含む行全体を読み取るために使用します。

于 2012-10-20T18:34:25.397 に答える
0

を使用する必要がありますnextLine。デリミネーターを使用next()すると、スペース文字である画像が表示されます。したがって、最終的には、完全な文字列ではなく、1 つのトークンのみを読み取ることになります。

String message = keyboard.nextLine();

例: 以下の文字列の場合

A a  B b
keyboard.next()---> will return you A if you again call then B and so on
keyboard.nextLine()-->will return you whole line ie. A a  B b which you want
于 2012-10-20T18:34:14.733 に答える