java - 在java中从键盘获取多行然后单个字符
问题描述
我输入:
- 乔·史密斯(按回车键)
- IT 工程师(按 Enter)
- Y(按回车键)
然后会发生什么,循环再次发生,但您不能再次输入your first and last name
。
String name = s.nextLine();
循环执行一次后,似乎总是空行。
这是为什么?
代码:
Scanner s = new Scanner(System.in);
do {
System.out.printl('Enter your first and last name:');
String name = s.nextLine();
System.out.printl('Enter your job description:');
String job = s.nextLine();
System.out.println("Press Y for loop ..");
char answer = s.next().charAt(0);
} while(answer == 'Y');
解决方案
System.out.printl()
应该System.out.println()
您应该对字符串使用双引号。
System.out.printl('Enter your first and last name:');//<----single quote
变量answer
超出范围,因为在 java 中,范围仅限于 {}
. answer
在循环之前声明do-while
(在顶部)。
而不是使用char answer = s.next().charAt(0);
,使用answer = s.nextLine().charAt(0);
有关更多信息,请检查Scanner 在使用 next() 或 nextFoo() 后是否跳过了 nextLine()?
这是您修改后的代码:
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
char answer; //<----declare the variable here
do {
System.out.println("Enter your first and last name:"); //<---use double quotes
String name = s.nextLine();
System.out.println("Enter your job description:");//<---use double quotes
String job = s.nextLine();
System.out.println("Press Y for loop ..");
answer = s.nextLine().charAt(0); //<---use nextLine() here
}while(answer == 'Y');
}
推荐阅读
- php - 将错误消息存储在一个数组中
- php - html文件和php文件中的html之间的页面看起来不同
- python - 删除数据框但仍然丢失内存
- python - 如何为每个列索引查找包含 n 个最小值的行索引的列表?
- spring-boot - Struts 2:提交响应后无法获取会话
- c - 如何操作数组?
- java - 尝试访问子类的属性但变量是超类类型时“找不到符号”
- android - 在登录 Ubuntu GUI 会话之前,Android 设备不会出现在“adb devices”中
- php - 在 WooCommerce 中显示购物车和订单商品的重量
- javascript - 反应孩子应用程序定位按钮