我试图从用户那里获取要存储在数组中的名称的数量的输入,然后使用它来从用户那里获取名称,首先我尝试使用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()
接受完整的输入,所以这里发生了什么?
答案 0 :(得分:0)
在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]);
}
}
}