原文地址:https://www.cnblogs.com/SzBlog/p/5404335.html

后面有改动

使用Scanner类可以很方便地便获取用户的键盘输入,Scanner是一个基于正则表达式的文本扫描器,它可以从文件、输入流 、字符串中解析出基本类型值和字符串值。Scanner类提供了多个构造器,不同的构造器可接受文件、输入流、字符串作为数据,用于从文件、输入流、字符串中解析数据。

Scanner主要提供了两个方法来扫描输入:

(1)   hasNextXxx():是否还有下一个输入项,其中Xxx可以是Int、Long等代表基本数据类型的字符串。如果需要判断是否包含下一个字符串,可以省略Xxx.

(2)   nextXxx():获取下一个输入项。Xxx的含义与前一个方法中Xxx相同。

在默认情况下,Scanner使用空白(包括空格、Tab空白、回车)作为多个输入项之间的分隔符。看下面的程序使用Scanner来获得用户的键盘输入。

public class TestScannerKeyBoard
{
public static void main(String[] args)
{
//System.in代表标准输入,就是键盘输入
Scanner sc=new Scanner(System.in);
//Scanner使用useDelimiter(String pattern)方法设置分隔符。下面设置使用回车作为分隔符,
//程序每次读取一行,不管这一行是否包含空格,Scanner都把它当成一个输入项
//sc.useDelimiter("\n"); //判断是否还有下一个输入项
while(sc.hasNext())
{
//输出输入项
System.out.println("键盘输入内容是:"+sc.next());
}
}
}
运行上面程序,程序通过Scanner不断从键盘读取键盘输入,每次读到键盘输入,直接将输入内容打印在控制台。
事实上,Scanner提供了两个简单的方法来逐行读取:
   (1) boolean hasNextLine():返回输入源中是否还有下一行。
   (2)String nextLine():返回输入源中的下一行的字符串。
    Scanner不仅可以获取字符串输入项,也可以获取任何类型的输入项。

在实现字符窗口的输入时,很多人更喜欢选择使用扫描器Scanner,它操作起来比较简单。在编程的过程中,我发现用Scanner实现字符串的输入有两种方法,一种是next(),一种nextLine(),但是这两种方法究竟有什么区别呢?我查了一些资料总结了一下,希望对大家有所帮助~
        

next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。

简单地说,next()查找并返回来自此扫描器的下一个完整标记。完整标记的前后是与分隔模式匹配的输入信息,所以next方法不能得到带空格的字符串。

而nextLine()方法的结束符只是Enter键,即nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。

鉴于以上两种方法的只要区别,一定要注意next()方法和nextLine()方法的连用,举个例子:

<span style="font-family:FangSong_GB2312;">im</span>port java.util.Scanner;

public class NextTest{
public static void main(String[] args) { String s1,s2; Scanner sc=new Scanner(System.in); System.out.print("请输入第一个字符串:"); s1=sc.nextLine(); System.out.print("请输入第二个字符串:"); s2=sc.next(); System.out.println("输入的字符串是:"+s1+" "+s2); }
}

  运行结果:
请输入第一个字符串:home
请输入第二个字符串:work

输入的字符串是:home wor

使用Scanner获取键盘输入 (转)的更多相关文章

  1. java利用Scanner获取键盘输入

    首发地址:我的网易博客 在运行一个java程序的时候,可能我们需要在运行的时候传递一些参数进去...咋办呢... java提供了一个Scanner类,利用这个类,我们可以很方便的获取键盘输入的参数.. ...

  2. 使用Scanner获取键盘输入

    使用Scanner类可以很方便地便获取用户的键盘输入,Scanner是一个基于正则表达式的文本扫描器,它可以从文件.输入流 .字符串中解析出基本类型值和字符串值.Scanner类提供了多个构造器,不同 ...

  3. 【Java】Java_20 Scanner获取键盘输入

    使用Scanner类可以很方便的获取用户的键盘输入,Scanner是一个基于正则表达式子的文本扫描器,他可以从文件.输入流.字符串中解析出基本类型值和字符串值. 例子示意: package com.o ...

  4. 学习笔记7——使用Scanner获取键盘输入

    使用Scanner类可以很方面地获取用户的键盘输入,Scanner是一个基于正则表达式的文本扫描器,它可以从文件.输入流.字符串中解析出基本类型值和字符串值.Scanner类提供了多个构造器,不同的构 ...

  5. Java基础 - 获取键盘输入

    package com.demo3; import java.util.Scanner; /* * 使用 Scanner 获取键盘输入供程序使用 * * 使用步骤: * A:导包 * import j ...

  6. java 获取键盘输入常用的两种方法

    java 获取键盘输入常用的两种方法 方法1: 通过 Scanner Scanner input = new Scanner(System.in); String s = input.nextLine ...

  7. Java编程中获取键盘输入实现方法及注意事项

    Java编程中获取键盘输入实现方法及注意事项 1. 键盘输入一个数组 package com.wen201807.sort; import java.util.Scanner; public clas ...

  8. System.in 获取键盘输入

    此处说明 两种使用System.in获取键盘输入的两种方法,分别是Scanner 和 InputStreamReader. 其中System.in 在System类中的定义如下: package co ...

  9. JavaSE---用户交互---获取键盘输入

    1.概述 1.1 JDK1.5提供了Scanner类,用来获取键盘输入: 1.2 Scanner类是   一个基于正则表达式的文本扫描器,可以从文件.输入流.字符串中解析出基本类型值.字符串值: 1. ...

随机推荐

  1. jq 禁用复选框 和输入框

    $('input').attr("readonly", ""); $('input').attr("disabled", "fal ...

  2. apicloud UISearchBar 使用方法

    app中经常会有搜索的页面. 大概逻辑是,一般来说首页有一个搜索的图,点击之后跳转到一个搜索的页面,在这个页面做搜索. 正常代码逻辑 <body> <a class="bu ...

  3. 【转载】Java IO 转换流 字节转字符流

    字节流输入字节流:---------| InputStream 所有输入字节流的基类. 抽象类.------------| FileInputStream 读取文件的输入字节流.----------- ...

  4. webpack command not found 的意外的坑 - 原因是从node开始

    写给自己做个记录: 弄了半天 执行了下面操作 npm install webpack -g 因为小白不懂原理,所以执行了好遍,结果还是如题, webpack command not found 网上搜 ...

  5. 【剑指Offer】16、合并两个排序的链表

      题目描述:   输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则.   解题思路:   首先需要判断几个特殊情况,即判断输入的两个指针是否为空.如果第一个 ...

  6. Java语言输出HelloWorld

    1.新建一个名为HelloWorld.txt的文本文件. 2.将HelloWorld.txt改为.java. 3.将HelloWorld.java用文本文件的方式打开,并输入代码. 4.打开命令行,进 ...

  7. UVA1339 - Ancient Cipher 【字符串+排序】【紫书例题4.1】

    题意:给定两个字符串,你可以替换或者置换,替换是指可以将相同的字母替换为任意一个字母,而置换是指将字母替换为下一个,如A替换B,B替换为C,,,Z替换为A.你需要判断是否可以通过一系列操作使两个字符串 ...

  8. 10.使用Mybatis-Generator自动生成Dao、Model、Mapping相关文件(转)

    出处:http://www.cnblogs.com/lichenwei/p/4145696.html Mybatis属于半自动ORM,在使用这个框架中,工作量最大的就是书写Mapping的映射文件,由 ...

  9. Travel Card

    Travel Card time limit per test 2 seconds memory limit per test 256 megabytes input standard input o ...

  10. Spring MVC-概述(转载实践)

    以下内容翻译自:https://www.tutorialspoint.com/springmvc/springmvc_overview.htm 说明:示例基于Spring MVC 4.1.6. Spr ...