加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

12-01 Java Scanner类,Scanner类中的nextLine()产生的换行符问

发布时间:2020-12-14 06:09:11 所属栏目:Java 来源:网络整理
导读:分析理解:Scanner sc = new Scanner(System.in); span style="color: #008000;"/* span style="color: #008000;" Scanner:用于接收键盘录入数据。 前面的时候: A:导包 B:创建对象 C:调用方法 span style="color: #ff0000;"分析理解:Scanner sc = new Scan
分析理解:Scanner sc = new Scanner(System.in);
<span style="color: #008000;">/*<span style="color: #008000;">

  • Scanner:用于接收键盘录入数据。
  • 前面的时候:
  • A:导包
  • B:创建对象
  • C:调用方法
  • <span style="color: #ff0000;">分析理解: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)
    <span style="color: #008000;">*/
    <span style="color: #0000ff;">import<span style="color: #000000;"> java.util.Scanner;

<span style="color: #0000ff;">public <span style="color: #0000ff;">class<span style="color: #000000;"> ScannerDemo {
<span style="color: #0000ff;">public <span style="color: #0000ff;">static <span style="color: #0000ff;">void<span style="color: #000000;"> main(String[] args) {
<span style="color: #008000;">//<span style="color: #008000;"> 创建对象
Scanner sc = <span style="color: #0000ff;">new<span style="color: #000000;"> Scanner(System.in);

    </span><span style="color: #0000ff;"&gt;int</span> x =<span style="color: #000000;"&gt; sc.nextInt();

    System.out.println(</span>"x:" +<span style="color: #000000;"&gt; x);
}

}

Scanner类的hasNextInt()和nextInt()方法

<span style="color: #0000ff;">import<span style="color: #000000;"> java.util.Scanner;

<span style="color: #008000;">/*<span style="color: #008000;">

  • 基本格式:

  • public<span style="color: #ff0000;"> boolean hasNextXxx():<span style="color: #ff0000;">判断是否是某种类型的元素

  • public <span style="color: #ff0000;">Xxx next<span style="color: #ff0000;">Xxx():获取该元素

  • 举例:用int类型的方法举例

  • public boolean hasNextInt()

  • public int nextInt()

  • 注意:

  • InputMismatchException:输入的和你想要的不匹配
    <span style="color: #008000;">*/
    <span style="color: #0000ff;">public <span style="color: #0000ff;">class<span style="color: #000000;"> ScannerDemo {
    <span style="color: #0000ff;">public <span style="color: #0000ff;">static <span style="color: #0000ff;">void<span style="color: #000000;"> main(String[] args) {
    <span style="color: #008000;">//<span style="color: #008000;"> 创建对象
    Scanner sc = <span style="color: #0000ff;">new<span style="color: #000000;"> Scanner(System.in);

     </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt; 获取数据</span>
     <span style="color: #0000ff;"&gt;if</span><span style="color: #000000;"&gt; (sc.hasNextInt()) {
         </span><span style="color: #0000ff;"&gt;int</span> x =<span style="color: #000000;"&gt; sc.nextInt();
         System.out.println(</span>"x:" +<span style="color: #000000;"&gt; x);
     } </span><span style="color: #0000ff;"&gt;else</span><span style="color: #000000;"&gt; {
         System.out.println(</span>"你输入的数据有误"<span style="color: #000000;"&gt;);
     }

    }
    }

<span style="color: #0000ff;">import<span style="color: #000000;"> java.util.Scanner;

<span style="color: #008000;">/*<span style="color: #008000;">

  • 常用的两个方法:

  • public int nextInt():获取一个int类型的值

  • public String nextLine():获取一个String类型的值

  • 出现问题了:

  • <span style="color: #ff0000;">先获取一个数值,在获取一个字符串,会出现问题。

  • 主要原因:就是那个换行符号的问题。

  • 如何解决呢?

  • <span style="color: #ff0000;"> A:先获取一个数值后,在创建一个新的键盘录入对象获取字符串。

  • B:把所有的数据都先按照字符串获取,然后要什么,你就对应的转换为什么。
    <span style="color: #008000;">*/
    <span style="color: #0000ff;">public <span style="color: #0000ff;">class<span style="color: #000000;"> ScannerDemo {
    <span style="color: #0000ff;">public <span style="color: #0000ff;">static <span style="color: #0000ff;">void<span style="color: #000000;"> main(String[] args) {
    <span style="color: #008000;">//<span style="color: #008000;"> 创建对象
    Scanner sc = <span style="color: #0000ff;">new<span style="color: #000000;"> Scanner(System.in);

     </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt; 获取两个int类型的值
     </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt; int a = sc.nextInt();
     </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt; int b = sc.nextInt();
     </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt; System.out.println("a:" + a + ",b:" + b);
     </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt; System.out.println("-------------------");
    
     </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt; 获取两个String类型的值
     </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt; String s1 = sc.nextLine();
     </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt; String s2 = sc.nextLine();
     </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt; System.out.println("s1:" + s1 + ",s2:" + s2);
     </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt; System.out.println("-------------------");
    
     </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt; 先获取一个字符串,在获取一个int值
     </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt; String s1 = sc.nextLine();
     </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt; int b = sc.nextInt();
     </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt; System.out.println("s1:" + s1 + ",b:" + b);
     </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt; System.out.println("-------------------");
    
     </span><span style="color: #ff0000;"&gt;// 先获取一个int值,在获取一个字符串,这里会出问题
     </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt; int a = sc.nextInt();
     </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt; String s2 = sc.nextLine();
     </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt; System.out.println("a:" + a + ",s2:" + s2);
     </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt; System.out.println("-------------------");</span>
    
     <span style="color: #0000ff;"&gt;int</span> a =<span style="color: #000000;"&gt; sc.nextInt();
     Scanner sc2 </span>= <span style="color: #0000ff;"&gt;new</span><span style="color: #000000;"&gt; Scanner(System.in);
     String s </span>=<span style="color: #000000;"&gt; sc2.nextLine();
     System.out.println(</span>"a:" + a + ",s:" +<span style="color: #000000;"&gt; s);

    }
    }

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读