Java Scanner类用法及nextLine()产生的换行符问题实例分析

时间:2021-12-07 14:48:24

本文实例讲述了java scanner类用法及nextline()产生的换行符问题。分享给大家供大家参考,具体如下:

分析理解:scanner sc = new scanner(system.in);

?
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
package cn.itcast_01;
/*
 * scanner:用于接收键盘录入数据。
 *
 * 前面的时候:
 *     a:导包
 *     b:创建对象
 *     c:调用方法
 *
 * 分析理解:scanner sc = new scanner(system.in);
 * system类下有一个静态的字段:
 *     public static final inputstream in; 标准的输入流,对应着键盘录入。
 *
 *     inputstream is = system.in;
 *
 * class demo {
 *     public static final int x = 10;
 *     public static final student s = new student();
 * }
 * int y = demo.x;
 * student s = demo.s;
 *
 *
 * 构造方法:
 *     scanner(inputstream source)
 */
import java.util.scanner;
public class scannerdemo {
  public static void main(string[] args) {
    // 创建对象
    scanner sc = new scanner(system.in);
    int x = sc.nextint();
    system.out.println("x:" + x);
  }
}

scanner类的hasnextint()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
package cn.itcast_02;
import java.util.scanner;
/*
 * 基本格式:
 *     public boolean hasnextxxx():判断是否是某种类型的元素
 *     public xxx nextxxx():获取该元素
 *
 * 举例:用int类型的方法举例
 *     public boolean hasnextint()
 *     public int nextint()
 *
 * 注意:
 *     inputmismatchexception:输入的和你想要的不匹配
 */
public class scannerdemo {
  public static void main(string[] args) {
    // 创建对象
    scanner sc = new scanner(system.in);
    // 获取数据
    if (sc.hasnextint()) {
      int x = sc.nextint();
      system.out.println("x:" + x);
    } else {
      system.out.println("你输入的数据有误");
    }
  }
}

scanner类中的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
36
37
38
39
40
41
42
43
44
package cn.itcast_03;
import java.util.scanner;
/*
 * 常用的两个方法:
 *     public int nextint():获取一个int类型的值
 *     public string nextline():获取一个string类型的值
 *
 * 出现问题了:
 *     先获取一个数值,在获取一个字符串,会出现问题。
 *     主要原因:就是那个换行符号的问题。
 * 如何解决呢?
 *     a:先获取一个数值后,在创建一个新的键盘录入对象获取字符串。
 *     b:把所有的数据都先按照字符串获取,然后要什么,你就对应的转换为什么。
 */
public class scannerdemo {
  public static void main(string[] args) {
    // 创建对象
    scanner sc = new scanner(system.in);
    // 获取两个int类型的值
    // int a = sc.nextint();
    // int b = sc.nextint();
    // system.out.println("a:" + a + ",b:" + b);
    // system.out.println("-------------------");
    // 获取两个string类型的值
    // string s1 = sc.nextline();
    // string s2 = sc.nextline();
    // system.out.println("s1:" + s1 + ",s2:" + s2);
    // system.out.println("-------------------");
    // 先获取一个字符串,在获取一个int值
    // string s1 = sc.nextline();
    // int b = sc.nextint();
    // system.out.println("s1:" + s1 + ",b:" + b);
    // system.out.println("-------------------");
    // 先获取一个int值,在获取一个字符串,这里会出问题
    // int a = sc.nextint();
    // string s2 = sc.nextline();
    // system.out.println("a:" + a + ",s2:" + s2);
    // system.out.println("-------------------");
    int a = sc.nextint();
    scanner sc2 = new scanner(system.in);
    string s = sc2.nextline();
    system.out.println("a:" + a + ",s:" + s);
  }
}

希望本文所述对大家java程序设计有所帮助。

原文链接:https://www.cnblogs.com/baiyangyuanzi/p/6855190.html