• Java从控制台获取数据的方法


    一、使用System.in.read()一次获取一个字节

      输入再多数据,只会获取第一个字节的int形式。获取的是字节,而不是字符,所以如果输入中文字符,强转后会得到乱码

    1      try {
    2             int in_num=System.in.read();    //获取的是一个字节的int类型
    3             System.out.println("强转前:"+in_num);
    4             System.out.println("强转后:"+(char)in_num);
    5         } catch (IOException e) {
    6             e.printStackTrace();
    7         }

      1.输入:你

         强转前:196 强转后:? 

      2.输入:@

         强转前:64 强转后:@ 

      3.输入:space(一个空格)

         强转前:32 强转后:  //强转后得到的是一个空格,有占位。只是看不到而已 

      4.输入:enter(换行)

         强转前:13 强转后:   //强转后得到的是一个换行。 

      5.输入:tab(水平制表符)

         强转前:9 强转后:   //强转后得到的是一个水平制表符(8个空格) 

    二、使用Scanner获取  

    1      Scanner in=new Scanner(System.in);
    2         System.out.println("获取字符串:"+in.next());
    3         //System.out.println("获取一行数据:"+in.nextLine());  

      1.单独用in.next()方法获取字符串,输入tab、space、enter时,会从这里为断点,只会获取之前的数据,如:

         输入:我爱 你到底 获取字符串:我爱    //会自动去除前后的空格trim()方法 

      2.单独用in.nextLine()方法获取一行输入的数据,无论输入tab、space都会完整的获取到,当输入enter时,表示输入完毕。     

    输入数据:让 我深深    去爱你
    获取一行数据:让 我深深    去爱你      //不会去除前后的空格

       3.如果使用完in.next()后没有关闭,就使用in.nextLine(),则in.nextLine()会获取前一方法截断后的数据。

        如果关闭后还执行in.nextLine()则会抛出异常:java.lang.IllegalStateException: Scanner closed    

    输入:我留不住    所有的岁月
    获取字符串:我留不住
    获取一行数据:    所有的岁月

    三、使用BufferedReader获取数据  

    1      InputStream is=System.in;
    2         InputStreamReader isr=new InputStreamReader(is);
    3         BufferedReader br=new BufferedReader(isr);
    4         try {
    5             System.out.println(br.readLine());
    6         } catch (IOException e) {
    7             e.printStackTrace();
    8         }

      1.获取一个字符的int类型:br.read();

      2.获取一行字符串:br.readLine();   //不会自动去除前后空格

      3.把获取到的数据装入到一个char[]数组中。返回的是这个数据的长度

        int length=br.read(char[]);

    (个人学习笔记,有错请说出来。谢谢!)

  • 相关阅读:
    Spring---------ThreadLocal(线程变量副本)
    Spring----Spring的IoC容器
    Spring----IoC Service Provieder
    三种依赖注入的方式
    数据库并发操作可能出现的问题之---更新丢失
    有状态bean与无状态bean
    Spring Data JPA、 MyBatis与Hibernate简单对比
    spring-bean的生命周期
    TCP/IP详解--拥塞控制 & 慢开始、拥塞避免、快重传和快恢复。
    如何在云服务器创建maven私有仓库
  • 原文地址:https://www.cnblogs.com/qneverever/p/4423975.html
Copyright © 2020-2023  润新知