最近想着刷力扣或者牛客,从简单的开始刷起,顺便练练手感。
遇到了这么两个函数,Scanner类的next()方法与nextLine(),这两个玩意儿,初学Java的时候经常遇到,实际写项目基本没用过,但是既然遇到了,还是得了解了解。
这两个方法都是从键盘里取出一行字符串,以回车键结束获取
public class Main {
public static void main(String[] args) {
// 必须先声明就不说了
Scanner in = new Scanner(System.in);
// 返回值都是字符串类型
String next1 = in.next();
String next2 = in.nextLine();
}
再来简单介绍一下
- next()
- 一定要读取到有效字符后才可以结束输入。
- 对输入有效字符之前或之后遇到的空白,next() 方法会自动将其去掉。
- 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
- next() 不能得到带有空格的字符串。
首先是next(),简单来一个代码
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("==============");
System.out.print("请输入:");
String next = in.next();
System.out.println("输出:" + next + "; 长度:" + next.length());
System.out.println("==============");
}
}
-
输入空格+回车键,程序并不会结束
然后接着输入几个字符,再回车,程序结束了,把非空格的字符串输出了,长度也是非空格的字符串长度。
即使是字符串后带的长度也会被过滤掉
但是字符串中间空格的话,会将字符串分割成两段,中间空格代表着分割,但依旧不会有空格输出
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("==============");
System.out.print("请输入:");
String next = in.next();
System.out.println("输出:" + next + "; 长度:" + next.length());
// 每用一次next()方法就代表着从键盘获取一次输入
String next2 = in.next();
System.out.println("输出:" + next2 + "; 长度:" + next2.length());
System.out.println("==============");
}
}
- nextLine()
- 以Enter为结束符, nextLine() 方法返回的是输入回车之前的所有字符。
- 可以获得空白。
nextLine()则是完全可以输出空格,不论是纯空格字符串、前空格、中间空格、后空格,都是作为有长度的字符串输出, 由此也可以知道,nextLine()是不会以空格作为结束符的
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("==============");
System.out.print("请输入:");
String next = in.nextLine();
System.out.println("输出:" + next + "; 长度:" + next.length());
System.out.println("==============");
}
}
最好,来自一个被大流淹没的Java菜后端,有错请指出,谢谢。