怎么让Java获取用户输入的字符串
从控制台动态输入数据,对数据进行各种各样的处理,然后将数据输出是很常见的操作。现在对数据的输入方式进行系统的介绍:
Scanner类的调用
相关方法:
hasNext()
判断扫描器中当前扫描位置后是否还存在下一段。
hasNextLine()
如果在此扫描器的输入中存在另一行,则返回 true。
next()
查找并返回来自此扫描器的下一个完整标记。
nextLine()
此扫描器执行当前行,并返回跳过的输入信息。
nextInt()
将控制台扫描的整形数据返回。
相关视频教程分享:java学习视频
代码举例:
package FIRST_Chapter;
import java.util.Scanner;
public class TestScanner {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("请输入字符串:");
while (true) {
String line = s.nextLine();
if (line.equals("ok")) break;
System.out.println(">>>" + line);
}
}
}
结果演示:
next()和nextLine()方法的区别
next()方法一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。
简单地说,next()查找并返回来自此扫描器的下一个完整标记。完整标记的前后是与分隔模式匹配的输入信息,所以next方法不能得到带空格的字符串。
而nextLine()方法的结束符只是Enter键,即nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。
比如如下程序:
package FIRST_Chapter;
import java.util.Scanner;
class test{
public static void main(String[] Args){
Scanner sc= new Scanner(System.in);
System.out.println("请输入一段数据");
String str =sc.next();
System.out.println("用next输入的语句"+str);
String str1 =sc.nextLine();
System.out.println("用nextLine输入的语句"+str1);
//sc.nextLine();//如果下面注释行想用nextLine的话,就要注意加上这句话
}
}
输出结果:
换个结果输出:
总结:next碰到空格,换行都结束输入。而nextLine只以换行(回车)才会结束输入。
从第二个结果看出,当你输入回车表示输入结束时,这个时候下一行的代码nextLine也结束了输入。而输入的结果是空的,就是个回车而已。
相关文章教程推荐:java入门教程
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341