1.导入:

import java.util.Scanner;

2.创建对象

Scanner scan = new Scanner(System.in);//一般变量名为scan或者in

最后关闭,scan.close();和I/O流有关,暂不清楚,照抄先。

3.next()

读取字符串,要读取到有效字符后才结束输入,不能读取空格,即遇到空格就停。

        Scanner scan = new Scanner(System.in);
String s1 = new String();
String s2 = new String();
String s3 = new String();
s1 = scan.next();
s2 = scan.next();
s3 = scan.next();
System.out.println(s1);
System.out.println(s2);
System.out.println(s3);
if(scan.hasNext())
System.out.println("Yes");

输入:123 456 789 1011

输出:

123
456
789
Yes

s1第一次读取到有效字符1,遇到4前的空格结束第一次输入;随后s2遇到第一个有效字符4,遇到空格结束;s3遇到第一个有效字符7,同理遇到空格结束,此时还有未读取的字符在缓冲区里,用hasNext()判断;

4.hasNext()

判断是否还有输入的数据,不能识别空格或回车,还会吃掉空格或者回车,连续的空格加回车一次性全部吸收掉,ACM里用循环读取下一组数据。

5.nextLine()

和next()类似,唯一不同就是,next()遇到空格或者回车就断了,nextLine()遇到回车才断,空格也算是有效字符,从第一个有效字符开始直到回车,中间无论多少空格都能吃下。

package my_acm;

import java.util.Scanner;
public class MyTest10 { public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String s1 = new String();
String s2 = new String();
String s3 = new String();
String s4 = new String();
s1 = scan.next();
s2 = scan.next();
s3 = scan.next();
s4 = scan.nextLine();
System.out.println(s1);
System.out.println(s2);
System.out.println(s3);
System.out.println(s4); if(scan.hasNext())
System.out.println("Yes1");
if(scan.hasNextLine())
System.out.println("Yes2"); }
}
/**输入:123 456 789 1011 12 13 14 15
输出:
123
456
789
1011 12 13 14 15
s4把9后面的全部字符全部都吃下去了,没有未读取的字符
*/

nextLine()

6.hasNextLine()

可以判断空格和回车,但是不会吃掉任何字符。

import java.util.Scanner;
public class MyTest10 { public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String s1 = new String();
String s2 = new String();
String s3 = new String();
String s4 = new String();
s1 = scan.next();
s2 = scan.next();
s3 = scan.next();
System.out.println(s1);
System.out.println(s2);
System.out.println(s3);
if(scan.hasNext())
System.out.println("Yes1");
if(scan.hasNextLine())
System.out.println("Yes2");
scan.close();
}
}

测试hasNext()会吃掉空格,hasNextLine()不会

import java.util.Scanner;
public class MyTest10 { public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String s1 = new String();
String s2 = new String();
String s3 = new String();
String s4 = new String();
s1 = scan.next();
s2 = scan.next();
s3 = scan.next();
System.out.println(s1);
System.out.println(s2);
System.out.println(s3);
if(scan.hasNextLine())
System.out.println("Yes2");
if(scan.hasNextLine())
System.out.println("Yes3");
if(scan.hasNext())
System.out.println("Yes1");
scan.close();
}
}

测试hasNext()会吃掉空格,hasNextLine()不会

  • 通过比较可以知道hasNextLine()可以判断空格和回车,并且不会吸收字符;
  • 但是如果先遇到hasNext(),空格加回车全都被吃掉,后续接上hasNextLine()判断不到还有空格和回车。

7.其他类型的输入

nextDouble();

nextLong();

nextInt();

nextFloat();

nextByte();

Java Scanner语法的更多相关文章

  1. java基础语法笔记

    这段时间看了一些java,急了一些笔记,记下一遍以后复习用! 2016-07-24 15:12:40 java很多语法都跟C#类似,下面列举一些不同的地方******注意***** java中的系统方 ...

  2. Java基本语法实验报告

      题目:       Java基本语法 课程名称:  JAVA语言程序设计 班    级:    信1705-1 姓    名:   刘雨馨     学号:   20173445 指导教师:    ...

  3. Java 基本语法---Java方法

    Java 基本语法---Java方法 0.概述 方法:就是用来解决一类问题的代码的有序组合,是一个功能模块: 在方法部分,只使用对象名词调用方法: Scanner sc = new Scanner(S ...

  4. Java 基本语法---Java数组

    Java 基本语法---Java数组 0. 概述 数组:相同类型的数据 按照顺序 组成的一种 引用数据类型 . 数据类型:基本数据类型 + 引用数据类型: 引用数据类型:类 + 接口 + 数组 : 一 ...

  5. Java 基本语法---流程控制

    Java 基本语法---流程控制 0. 概述 三大流程控制语句:顺序.选择.循环. 选择结构: if 结构,if - else结构: 多重 if - else 语句 ; 嵌套 if - else 语句 ...

  6. Java 基本语法---Java运算符

    Java 基本语法---Java运算符 0. 概述 Java中的运算符主要分为以下几种: 算术运算符 赋值运算符 关系运算符 逻辑运算符 条件运算符 位运算符 其他运算符 1. 算术运算符 操作符 描 ...

  7. Java-Runoob:Java Scanner 类

    ylbtech-Java-Runoob:Java Scanner 类 1.返回顶部 1. Java Scanner 类 java.util.Scanner 是 Java5 的新特征,我们可以通过 Sc ...

  8. java Scanner和异常

    Java Scanner 类 java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入. 下面是创建 Scanner 对象的基本语法: Scann ...

  9. 第8天 Java基础语法

    第8天 Java基础语法 今日内容介绍 Eclipse开发工具 超市库存管理系统 Eclipse开发工具 Eclipse是功能强大Java集成开发工具.它可以极大地提升我们的开发效率.可以自动编译,检 ...

随机推荐

  1. Windows&Mac安装Redis

    Windows&Mac安装Redis Window 下安装Redis Redis 支持 32 位和 64 位.这个需要根据你系统平台的实际情况选择,这里我下载 Redis-x64-xxx.zi ...

  2. 用户增长模型AARRR模型

    用户增长模型AARRR模型

  3. Python处理数据集-2

    原数据集的数据格式: 每行为:(test_User, test_Item) negativeItem1 negativeItem2 negativeItem3 …… negativeItem99 即每 ...

  4. 排列组合(包括n中随机抽取m个)

    有些情况我们需要获取一个数组中的所有排列组合情况,或者获取一部分数据进行随机组合,这个在python中有一个模块可以实现.具体情况如下 :::::::::::::::::::::::::::::::: ...

  5. 代码实现一个蛇形led走马灯

    什么叫走马灯? 走马灯又叫流水灯,灯不断的走动,像流水一样,动态显示. makecode图形化编程见:http://bbs.kittenbot.cn/forum.php?mod=viewthread& ...

  6. pta作业错误点--总结

    pta作业错误点--总结 注释:在做pta题目的时候,发现有许多题目的错误点是值得归纳总结起来的,今后翻阅博客园的时候能够明白之前有哪些是可以值得复习的. 7-2 换硬币 习题2-3 求平方与倒数序列 ...

  7. java8 List集合的排序,求和,取最大值,按照条件过滤

    public class Java8Test {       public static void main(String[] args) {           Person p1 = new Pe ...

  8. 汉字转拼音,TinyPinyin、Pinyin4j与JPinyin哪个库更快

    1. 介绍 本文对TinyPinyin.Pinyin4j与JPinyin三个汉字转拼音库的用法.测试代码及转换的结果做一个简单的总结. TinyPinyin 适用于Java和Android的快速.低内 ...

  9. SpringMVC-方法四种类型返回值总结,你用过几种?

    SpringMVC 现在算是 Java 领域的一个基础性框架了,很多人天天用,可是对于 SpringMVC 方法的返回值,你又是否完全清楚呢?今天松哥就来和大家聊一聊 SpringMVC 中四种不同类 ...

  10. Prometheus Grafana可视化展示Linux资源使用率

    Prometheus Grafana可视化展示Linux资源使用率  Grfana官方仪表盘下载:https://grafana.com/dashboards 数据源推荐:https://grafan ...