好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

本文实例讲述了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://HdhCmsTestcnblogs测试数据/baiyangyuanzi/p/6855190.html

查看更多关于Java Scanner类用法及nextLine()产生的换行符问题实例分析的详细内容...

  阅读:16次