zoukankan      html  css  js  c++  java
  • [转] Java:对Scanner的useDelimiter()方法的疑问

    【From】https://segmentfault.com/q/1010000003885362

    1. Windows下,我们在键盘上按下Enter键,实际上输入的是回车和换行两个字符: ,ASCII码分别是13和10

    2. 默认情况下,Scanner获取到的输入里面是不包含回车换行的。比如你输入____one_two ,它只会从____one_two里面获取输出(当然,可能要通过多次next()来获取),自动把回车换行过滤掉了

    3. 但是当我们强制以回车或换行为分隔符时,它就不会自动过滤回车换行符了。比如你以回车符 为分隔符的话,输入上面的内容会得到____one_two ,这也就是返回的length为12的原因。可以用下面的程序来验证,可以发现获取到的字符串的最后一个字符ASCII码为13,表示它是一个回车符

    // 输入`____one_two
    `来测试
    Scanner scanner = new Scanner(System.in);
    scanner.useDelimiter("
    ");
    String str = scanner.next();
    // 打印获取到的内容和其长度,以及最后一个字符的ASCII码
    System.out.println(str + ":" + str.length()
            + " (" + str.codePointAt(str.length()-1) + ")");

    解决方法:用 作为分隔符就正常了

  • 相关阅读:
    code war 天天一练(4)
    code war 天天一练(3)
    code war 天天一练(2)
    code war 天天一练(1)
    手写promise
    JSON序列化和反序列化
    SqlBulkCopy高效插入数据
    C#反射方法示例
    《将博客搬至CSDN》
    PHP学习笔记——Php文件引入
  • 原文地址:https://www.cnblogs.com/pekkle/p/8682200.html
Copyright © 2011-2022 走看看