java - JAVA 中的 next() 与 nextLine()
问题描述
我试图从用户那里获取要存储在数组中的名称数量,然后使用它从用户那里获取名称,首先我尝试使用next()
方法从用户那里获取名称,一切都很好,但是当我尝试使用nextLine()
方法输入,输出如下所示
package learningJava;
import java.util.Scanner;
public class practice
{
public static void main(String[] args)
{
int n;
Scanner obj = new Scanner(System.in);
System.out.println("Enter the number of names you are gonna enter");
n = obj.nextInt();
String names[] = new String[n];
for(int i=0;i<n;i++)
{
System.out.println("Enter the name of friend "+(i+1));
names[i]=obj.nextLine();
}
obj.close();
System.out.println("Names of your friends are");
for(int i=0;i<names.length;i++)
{
System.out.println(names[i]);
}
}
}
nextLine()
方法的输出
Enter the number of names you are gonna enter
5
Enter the name of friend 1
Enter the name of friend 2
它没有提示我输入朋友 1 的姓名并直接跳过它并来到朋友 2 行。我是 Java 的初学者,我知道 next 的基本区别,nextLine()
它next()
在空格后不接受输入,而是nextLine()
接受完整的输入,那么这里发生了什么?
解决方案
只是在 for 循环中,只需将“println”更改为“print”,因为 nextLine() 会消耗换行符。
import java.util.Scanner;
public class practice
{
public static void main(String[] args)
{
int n;
Scanner obj = new Scanner(System.in);
System.out.println("Enter the number of names you are gonna enter");
n = obj.nextInt();
String names[] = new String[n];
for(int i=0;i<n;i++)
{
System.out.print("Enter the name of friend "+(i+1));
names[i]=obj.nextLine();
}
obj.close();
System.out.println("Names of your friends are");
for(int i=0;i<names.length;i++)
{
System.out.println(names[i]);
}
}
}
推荐阅读
- javascript - 如何使用复选框将字符串附加到数组中?
- python - 正则表达式匹配超过 2 个源文件、预期字符串或缓冲区时出错
- android - 如何通过 Android 上的 SMS 从其 URL 启动第三方应用程序?
- html - 以 HTML 电子邮件格式显示的水平线 - Outlook Office 365
- java - Java 使用捕获的 ? 在通用类
- c# - 更新 MongoDB 集合它给出错误:命令失败应用更新后,发现(不可变)字段“_id”已被更改
- python - 如何轮廓图像中的多个最大对象
- google-app-engine - 保护计算引擎和应用引擎之间流量的最佳架构是什么?
- javascript - 有人能解释一下感叹号吗?
- linux - 将目录压缩成相同大小的分割文件,单独压缩文件?