所以我在为我的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;
}
}
}
提前感谢您的帮助。
答案 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