[转] Java:对Scanner的useDelimiter()方法的疑问
【From】https://segmentfault.com/q/1010000003885362
Windows下,我们在键盘上按下
Enter
键,实际上输入的是回车和换行两个字符:\r\n
,ASCII码分别是13和10
默认情况下,
Scanner
获取到的输入里面是不包含回车换行的。比如你输入____one_two\r\n
,它只会从____one_two
里面获取输出(当然,可能要通过多次next()
来获取),自动把回车换行过滤掉了但是当我们强制以回车或换行为分隔符时,它就不会自动过滤回车换行符了。比如你以回车符
\n
为分隔符的话,输入上面的内容会得到____one_two\r
,这也就是返回的length
为12的原因。可以用下面的程序来验证,可以发现获取到的字符串的最后一个字符ASCII码为13,表示它是一个回车符\r
:
// 输入`____one_two\r\n`来测试
Scanner scanner = new Scanner(System.in);
scanner.useDelimiter("\n");
String str = scanner.next();
// 打印获取到的内容和其长度,以及最后一个字符的ASCII码
System.out.println(str + ":" + str.length()
+ " (" + str.codePointAt(str.length()-1) + ")");
解决方法:用\r\n
作为分隔符就正常了
[转] Java:对Scanner的useDelimiter()方法的疑问的更多相关文章
- Java中Scanner的使用方法
Scanner是SDK1.5新增的一个类,但是使用该类创建一个对象.Scanner reader=new Scanner(System.in); 然后reader对象调用下列方法(函数),读取用户 ...
- java 10-4 Scanner方法
Scanner:用于接收键盘录入数据 常用的两个方法(int举例): public int nextInt():获取一个int类型的值 public String nextLine():获取一个St ...
- java中Scanner类nextLine()和next()的区别和使用方法
转载:http://blog.csdn.net/zhiyuan_ma/article/details/51592730 在实现字符窗口的输入时,很多人更喜欢选择使用扫描器Scanner,它操作起来比较 ...
- 【Java】 Scanner类的几个方法
通过 Scanner 类可以获取用户的输入,创建 Scanner 对象的基本语法如下: Scanner sc = new Scanner(System.in); nextInt().next()和ne ...
- java.util.Scanner中hasNext()方法和next()方法的区别
先说结论: 两者均根据空格划分数据 两者在没有数据输入时均会等待输入 next()方法会将空格划分的数据依次输出,运行一次,输出一个 hasNext()方法会跟着next()方法移动,当前数据不为空, ...
- java利用Scanner获取键盘输入
首发地址:我的网易博客 在运行一个java程序的时候,可能我们需要在运行的时候传递一些参数进去...咋办呢... java提供了一个Scanner类,利用这个类,我们可以很方便的获取键盘输入的参数.. ...
- java.util.Scanner的日常用法
Scanner是新增的一个简易文本扫描器,在 JDK 5.0之前,是没有的.查看最新在线文档: public final class Scanner extends Object implements ...
- java.util.Scanner应用详解++扫描控制台输入
java.util.Scanner应用详解 java.util.Scanner是Java5的新特征,主要功能是简化文本扫描.这个类最实用的地方表现在获取控制台输入,其他的功能都很鸡肋,尽管Java ...
- (转)java.util.Scanner应用详解
java.util.Scanner应用详解 java.util.Scanner是Java5的新特征,主要功能是简化文本扫描.这个类最实用的地方表现在获取控制台输入,其他的功能都很鸡肋,尽管Java ...
随机推荐
- PHP+SOCKET 模拟HTTP请求
HTTP消息结构 客户端请求包括四部份:请求行(状态行).请求头.空行.请求主体(数据),如下图: 服务端响应包括四部份:响应行(状态行).响应头.空行.响应主体(数据),如图: HTTP请求方法: ...
- Java反射学习:深入学习Java反射机制
一.Java反射的理解(反射是研究框架的基础之一) Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的 ...
- 门面(Facade)模式
门面(Facade)模式 也叫 外观模式. 外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得子系统更加容易使用 /* * 门面(Facade)角色:客户端可以 ...
- [转]android中最好的瀑布流控件PinterestLikeAdapterView
PinterestLikeAdapterView 项目地址:https://github.com/GDG-Korea/PinterestLikeAdapterView 使用方法类似于ListView下 ...
- 微信第三方平台开头篇--MVC代码(第三方获取ticket和公众号授权)
微信公众号授权给开放平台 公众号授权给第三方平台的技术实现流程比较简单 这个步骤遗漏了开头获取第三方平台自己的accessToken 先说下流程 如何注册开放平台的第三方信息看截图 其他不说了,此文只 ...
- C#中base的作用
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...
- Ubuntu chmod 命令可以用来修改文件或文件夹的读写权限
chmod 命令有两种使用方式 —————————————————————————— (1)chmod [ u / g / o / a ] [ + / - / = ] [ r / w / x ] fi ...
- vs2015+opencv3.3.1 实现 c++ 双边滤波器(Bilateral Filter)
#include <opencv2\highgui\highgui.hpp> #include <iostream> #include<vector> using ...
- 比较php字符串连接的效率
php字符串连接有三种方式 1)使用 . 链接 2)使用 .= 连接 3)implode 函数连接数组元素 /*以下测试在ci框架进行*/ private function get_mcrotime( ...
- 汇编工具安装二:RadASM的安装!
已经配置好的汇编工具下载地址:http://download.csdn.net/detail/sunylat/9189543 RadASM也是一款汇编开发工具,网址:http://www.oby.ro ...