Switch语句在白色空格处停止读取

时间:2012-10-20 18:30:27

标签: java switch-statement whitespace

所以我在为我的java类做作业时遇到了问题。目的是创建一个程序,该程序使用switch语句将字符串中的字母转换为其语音。即,A或a成为Alpha。

我遇到的问题是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;
}

}
}

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

String message = keyboard.next();在通过空格分隔的呼叫时读取一个单词(“”)。

使用String message = keyboard.nextLine();读取整行,包括。

中的空格

答案 1 :(得分:0)

您应该使用nextLine。如果你使用next() deliminator进入图片,这是空格char。所以最终你最终只能阅读一个不是完整字符串的令牌。

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