我正在尝试一个简单的基于菜单的java接受和显示字符串代码。在这里,如果我想接受并显示每行输入的单个字符串,我可以使用next()
,但是对于空格分隔的字符串作为输入,我无法按预期接受和显示。
这是代码:
import java.util.Scanner;
class Trial
{
String c,l;
public static void main(String[] args)
{
Trial t=new Trial();
int ch=0;
Scanner sc=new Scanner(System.in);
while(ch!=3)
{
System.out.println("1.acc");
System.out.println("2.dis");
System.out.println("3.exit");
System.out.println("enter ch");
ch=Integer.parseInt(sc.next());
switch(ch)
{
case 1:
System.out.println("enter C");
t.c=sc.nextLine();
System.out.println("enter L");
t.l=sc.nextLine();
sc.nextLine();
break;
case 2:
System.out.println("c = "+t.c);
System.out.println("l = "+t.l);
break;
}
}
}
}
这是我得到的输出:
------------------------输出------------
1.累计
2.dis
3.退出
输入通道
1
输入 C
输入 L
万维网
RRR TTT
1.累计
2.dis
3.退出
输入通道
阿拉伯数字
c =
l = 万维网
------------------输出结束---------
而我希望输出是
c = www eee"和 l = "rrr ttt.
谢谢
把sc.nextLine()
放在ch=Integer.parseInt(sc.next());
之后
看看这个: 你如何防止 scanner.next() 包含换行符?