Java中怎么处理多余的回车符?

我希望输入学号回车后再输入姓名,但是现在输入不了姓名直接到输入年龄那一行去啦,怎么修改?
public static void addStudent(ArrayList<Student> gg){
Scanner sc = new Scanner(System.in);
System.out.println("请输入学号");
int schoolnumber = sc.nextInt();
System.out.println("请输入姓名");
String name = sc.nextLine();
System.out.println("请输入年龄");
int age = sc.nextInt();
System.out.println("请输入地址");
String address=sc.nextLine();
Student p = new Student(schoolnumber,name,age,address);
}

JAVA中去掉空格
1. String.trim()
trim()是去掉首尾空格
2.str.replace(" ", ""); 去掉所有空格,包括首尾、中间
复制代码 代码如下:String str = " hell o ";
String str2 = str.replaceAll(" ", "");
System.out.println(str2);
3.或者replaceAll(" +",""); 去掉所有空格
4.str = .replaceAll("\\s*", "");
可以替换大部分空白字符, 不限于空格
\s 可以匹配空格、制表符、换页符等空白字符的其中任意一个 您可能感兴趣的文章:java去除字符串中的空格、回车、换行符、制表符的小例子
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-03-16
将所有的 sc.nextLine() 换成 sc.next()
第2个回答  2020-03-16
改成
public static void addStudent(ArrayList<Student> gg) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入学号");
int schoolnumber = sc.nextInt();
System.out.println("请输入姓名");
sc.nextLine();
String name = sc.nextLine();
System.out.println("请输入年龄");
int age = sc.nextInt();
System.out.println("请输入地址");
sc.nextLine();
String address=sc.nextLine();
Student p = new Student(schoolnumber,name,age,address);
}

public static void addStudent(ArrayList<Student> gg) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入学号");
int schoolnumber = sc.nextInt();
System.out.println("请输入姓名");
sc.skip("\\s+");
String name = sc.nextLine();
System.out.println("请输入年龄");
int age = sc.nextInt();
System.out.println("请输入地址");
sc.skip("\\s+");
String address=sc.nextLine();
Student p = new Student(schoolnumber,name,age,address);
}
都行追问

只能这样手动输出吗?第二个方法是怎么实现的还是不太懂欸。
我记得c语言里面对于这种情况有一个专门的连回车一起输出的调用,Java里面没有类似的吗?

追答

方法一和方法二都是用来跳过你上次输入的回车(换行符)的。
因为nextLine函数会读取一行,如果上次输入留下了一个换行符,就会读取一个空行。

所以,可以:
1.
用sc.nextLine();直接跳过一个空行,再读取一行输入。
2.
用sc.skip("\\s+");跳过接下来的所有连续的空白字符(包括空格、tab、换行等),再读取一行输入。
"\\s+"是正则表达式字符串,\\s表示一个空白字符,+表示一个或多个,整个意思就是表示一个或多个连续的空白字符,skip表示跳过这些字符。关于正则表达式的用法,你可以自己查资料。

c语言跳过回车(换行符)等空白字符的方法和java是类似的,也是通过调用一些函数实现的,只是函数名不同罢了。

本回答被提问者和网友采纳
相似回答