Scanner类

导包:java.util

创建对象:Scanner input =new Scanner(System.in);

使用: int value = input.nextInt();

​ String value = input.nextLine();

例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
String name;
int password;

Scanner input = new Scanner(System.in);
System.out.println("请输入账号:");
name = input.nextLine();
System.out.println("请输入密码:");
password = input.nextInt();

System.out.println("输入的账号为:"+name);
System.out.println("输入的密码为:"+password);
}
}


结果为:
请输入账号:
liufanghan
请输入密码:
123
输入的账号为:liufanghan
输入的密码为:123

先输入密码,再输入账号时:

结果:
请输入密码:
123
请输入账号:
输入的账号为:
输入的密码为:123

运行结果显示在输入时不会等待用户输入账号直接执行下面的代码

方法特性

nextLine方法会以回车符作为截止,将回车符连同之前的所有字符都读取出来,将回车符扔掉,通过new String()的方法把之前的所有字符组合成一个完整的字符串交还给我们

nextInt方法会以回车符作为截止,但它只会读取回车符之外的所有字符,回车符留在队列中,先读出来,读取之后先判断是不是数字,是的话按字符串读出来之后再转换为数字,即”123”—》123

nextFloat、nextDouble、nextByte与nextInt工作机制一样

next方法看到回车或者空格都认为结束,nextLine只认为回车符结束

next—>String nextLine—>String

解决方法

1.多加一行nextLine方法读出回车符,清除消息队列中的回车符

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
String name;
int password;

Scanner input = new Scanner(System.in);
System.out.println("请输入密码:");
password = input.nextInt();
//改正
input.nextLine();

System.out.println("请输入账号:");
name = input.nextLine();

System.out.println("输入的账号为:"+name);
System.out.println("输入的密码为:"+password);
}
}

结果:
请输入密码:
123
请输入账号:
liufanghan
输入的账号为:liufanghan
输入的密码为:123

2.使用next方法读取字符串,next方法读取方式与nextInt一致,不读取回车符

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
String name;
int password;

Scanner input = new Scanner(System.in);
System.out.println("请输入密码:");
password = input.nextInt();

System.out.println("请输入账号:");
//改正
name = input.next();

System.out.println("输入的账号为:"+name);
System.out.println("输入的密码为:"+password);
}
}

结果:
请输入密码:
456
请输入账号:
liufanghan
输入的账号为:liufanghan
输入的密码为:456

3.将账号和密码都统一用nextLine来读

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
String name;
int password;

Scanner input = new Scanner(System.in);
System.out.println("请输入密码:");

//数据转换问题,前提是大数据类型一致,基本类型和引用类型不能转换

//基本<--包装类-->引用
//int--Interger char--Character byte--Byte float--Float
password = Integer.parseInt(input.nextLine());
System.out.println("请输入账号:");
name = input.nextLine();

System.out.println("输入的账号为:"+name);
System.out.println("输入的密码为:"+password);
}
}

结果:
请输入密码:
789
请输入账号:
LFH
输入的账号为:LFH
输入的密码为:789

int–>String

int+””====String

基本类型和引用类型相连接结果为引用类型

1
2
3
4
System.out.println(5+5+"5"+5+5);

结果:
10555
相关文章
评论
分享
  • JavaEE开发准备

    个人电脑硬件配置: Windows 10 64位家庭中文版 8G运行内存 Intel(R) Core(TM) i5-7300HQ CPU @ 2.50GHz 1.Java JDK安装及配置(1)下载和安装首先进入oracle网站中Ja...

    JavaEE开发准备
  • JSP综合作业

    预备:数据库本次作业选择的数据库为MYSQL,采用的数据库管理工具为Navicat Premium12。MYSQL下载地址为https://dev.mysql.com/downloads/mysql/ 使用Navicat连接数据库。 ...

    JSP综合作业
  • JSP实现简单的购物车

    主要知识点:jsp指令标记、动作标记、内置对象request、response、session等的使用。 直接上代码: login.jsp: 1234567891011121314151617181920212223242526272...

    JSP实现简单的购物车
  • JSP初识

    JSP(Java Server Page),由Sun公司倡导,许多公司参与,于1999年(与我年龄一样!!!)推出的一种Web服务设计标准。 注释HTML注释: 1<!--需要注释的HTML内容--> JSP注释: 1&...

    JSP初识
  • Java工具类

    API(Application Programming Interface)1.包装类Java是面向对象的语言,但其中存在基本类型,违背了面向对象的思想。 包装类是基本类型与引用类型之间交换的桥梁 类型 包装类 byte ...

    Java工具类
  • Java设计模式

    设计模式:设计模式常用的有23种。设计模式是一种设计经验的总结,为了解决某些场景下的某一类的问题,是一种通用的解决方案 创建型(5):解决对象创建的过程 结构型(7):把类或对象通过某种形式结合在一起 行为型(11):解决类或对象之间...

    Java设计模式
  • 引用类型对象方法返回值问题

    想要通过对象方法交换两个数组中的值 目前采用了两种方法: (1)一次交换二者数组中的值 (2)交互两数组的数组名 (1) 1234567891011121314151617181920212223242526272829303132...

    引用类型对象方法返回值问题
  • Java入门到入土

    Java体系12345678910111213141516171819202122基础部分(JavaSE):1.面向对象的编程思想2.集合3.I/O流 底层MVC4.文件5.缓存6.反射、注解数据库(JDBC)+WEB(JavaEE)...

    Java入门到入土
  • Windows下neo4j的安装

    neo4j是一个高性能的NOSQL图形数据库,他将结构化数据存储在网络上而不是表中。他是一个嵌入式的、基于磁盘的、具备完全的事物特性的Java持久化引擎,neo4j也可看做是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。——百度...

    Windows下neo4j的安装
  • java实现类FTP程序

    继承程序设计实验,实验说明如图所示: 集成程序设计实验 TCP实现首先说明下基于TCP实现的功能: (1)能够实现多用户的同时连接 (2)用户执行成功的命令会在其他用户终端上显式说明 (3)当前用户数以及在线情况会在服务端实时显...

    java实现类FTP程序
Please check the comment setting in config.yml of hexo-theme-Annie!