qq_32060049
32060049
采纳率94.4%
2015-12-08 06:32

java利用String获取字符后输出

已采纳

import java.util.Scanner;

public class Student {
public static void main(String[] args)
{
int i,j;
Scanner input = new Scanner(System.in);
System.out.print("please enter the number of students:");
int number = input.nextInt();
String name[] = new String[number];//学生姓名数组
System.out.print("please enter their name:");
for(i=0;i<number;i++){
name[i] = input.nextLine();
}
for(j=0;j<number;j++){
System.out.println("as follows:"+name[j]);
}

   }

}

运行后,输入数字2,但输入一次名字后程序就输出结果了,为啥

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • caozhy 从今以后生命中的每一秒都属于我爱的人 6年前
  • qq_31173597 qq_31173597 6年前

    把input.nextLine()改成input.next()。

    点赞 1 评论 复制链接分享
  • tomcat_2014 toMatser 6年前

    楼上正解,
    当使用nextLine()方法时会读取该行剩余的所有的内容,包括换行符,然后把焦点移动到下一行的开头。所以这样就无法接收到下一行输入的String类型的变量。
    而next()方法是以换行或者空格符为分界线接收下一个String类型变量。
    例如:
    int n = ScannerObjext.nextInt()
    String s1 = ScannerObjext.nextLine();
    String s2 = ScannerObjext.nextLine();
    假设输入:
    42
    and don't you
    forget it
    在这种情况下,n的值为42,s1设置为空白字符,s2设置为and don't you
    因为nextInt()读入42,但并没有读入"\n",因此S1调用42所在行的剩余部分

    结合不同的方法从键盘读取字符输入时,有时不得不包含一条额外的nextLine()调用,以去除行的结束符。

    点赞 评论 复制链接分享

相关推荐