java中split任意数量的空白字符
2024-10-19 16:45:05
java程序中经常通过split截取字符串来取得其中的关键字。但是由于其中不同操作系统或者不同作者的习惯,经常会出现不同数量的空格,例如" "(3个空格);或者出现制表符、Tab符号" "(Tab键)。因此合理的通过任意数量的空白字符切割获取关键字非常重要。下面是我一步步摸索找出解决方案的过程。结局很重要,整个的思维过程也是相当有意义的。
1. 问题的提出:
String sample = "a b c d";
String[] arrays = sample.split(" ");
for(String s : arrays)
{
System.out.println(s);
}
由于字符串中出现了不定个数的空格,所以截取的字符串数组中肯定会出现空格字符串,结果如下:
利用java正则表达式的贪婪原则,提出解决方法:
String sample = "a b c d";
String[] arrays = sample.split(" +");
for(String s : arrays)
{
System.out.println(s);
}
结果:
2.另一个问题的提出:
id userName sex
0 root male
1 user1 female
我要从上述文件读取每一行字符串并且split,但是由于格式化以及各人之间的习惯,每一行中间都充斥着空格和Tab键,因此第一种解决方案无法运用到这上面去。想到正则表达式中有“\s”代表任意空白字符,这里便可以解决问题:
String sample1 = "0 root male";
String sample2 = "1 user1 female";
String[] arrays = sample1.split("\\s+");
for(String s : arrays)
{
System.out.println(s);
}
System.out.println("----------------------");
arrays = sample2.split("\\s+");
for(String s : arrays)
{
System.out.println(s);
}
结果:
3.字符串前后含有空白字符的情况:
String sample1 = " 0 root male";
String[] arrays = sample1.split("\\s+");
for(String s : arrays)
{
System.out.println(s);
}
这时候打印结果会在前面多一个空的字符串,解决方法是在split之前先进行trim()操作,由于trim()支持级联调用,可以写成下面的方式:
String sample1 = " 0 root male";
String[] arrays = sample1.trim().split("\\s+");
for(String s : arrays)
{
System.out.println(s);
}
结果Ok了。
最新文章
- JAVA解析XML的四种方法
- Ubuntu开机自启动
- linux各种命令
- lazyload懒加载的使用
- OpenFlow Switch学习笔记(七)——Matching Fields
- SqlServer中截取字符串
- 轻量级交互数据json格式初探
- org.springframework.core.Ordered接口
- 从计算机语言的发展到我的第一行代码(HelloWorld)
- php加密字符串超时不可解密
- jQuery系列 第八章 jQuery框架Ajax模块
- MySQL自定义函数与存储过程
- Asp.Net MVC WebAPI的创建与前台Jquery ajax后台HttpClient调用详解
- 清北学堂北京大学冯哲神仙讲课day2
- UVALive - 3266 Tian Ji -- The Horse Racing(贪心)
- Python解决乱码问题
- jquery--blur()事件,在页面加载时自动获取焦点
- Python实现常用的逻辑数据结构
- ftp--pureftpd1.0.46
- 接口测试工具 — jmeter(关联)
热门文章
- 使用原生node写一个聊天室
- Java基础-5运算符
- python 多版本的兼容
- eclipse把jar包引入项目的两种方法
- 孤荷凌寒自学python第五十二天初次尝试使用python读取Firebase数据库中记录
- 孤荷凌寒自学python第二十九天python的datetime.time模块
- python /usr/bin/python^M: bad interpreter: No such file
- CSLA多语言设置
- jQuery选择器之全选择器(*选择器)
- redis各种数据结构使用场景