java Split 用法
在java.lang包中有String.split()方法,返回是一个数组
我在应用中用到一些,给大家总结一下,仅供大家参考:
1、如果用“.”作为分隔的话,必须是如下写法,String.split("\\."),这样才能正确的分隔开,不能用String.split(".");
2、如果用“|”作为分隔的话,必须是如下写法,String.split("\\|"),这样才能正确的分隔开,不能用String.split("|");
“.”和“|”都是转义字符,必须得加"\\";
3、如果在一个字符串中有多个分隔符,可以用“|”作为连字符,比如,“acount=? and uu =? or n=?”,把三个都分隔出来,可以用String.split("and|or");
使用String.split方法分隔字符串时,分隔符如果用到一些特殊字符,可能会得不到我们预期的结果。
我们看jdk doc中说明
public String[] split(String regex)
Splits this string around matches of the given regular expression.
参数regex是一个 regular-expression的匹配模式而不是一个简单的String,他对一些特殊的字符可能会出现你预想不到的结果,比如测试下面的代码用竖线 | 分隔字符串,你将得不到预期的结果
String[] aa = "aaa|bbb|ccc".split("|");//String[] aa = "aaa|bbb|ccc".split("\\|"); 这样才能得到正确的结果for (int i = 0 ; i <aa.length ; i++ ) {System.out.println("--"+aa[i]); }
用竖 * 分隔字符串运行将抛出java.util.regex.PatternSyntaxException异常,用加号 + 也是如此。
String[] aa = "aaa*bbb*ccc".split("*");//String[] aa = "aaa|bbb|ccc".split("\\*"); 这样才能得到正确的结果 for (int i = 0 ; i <aa.length ; i++ ) {System.out.println("--"+aa[i]); }
显然, + * 不是有效的模式匹配规则表达式,用"\\*" "\\+"转义后即可得到正确的结果。
"|" 分隔串时虽然能够执行,但是却不是预期的目的,"\\|"转义后即可得到正确的结果。
还有如果想在串中使用"\"字符,则也需要转义.首先要表达"aaaa\bbbb"这个串就应该用"aaaa\\bbbb",如果要分隔就应该这样才能得到正确结果,
String[] aa = "aaa\\bbb\\bccc".split("\\\\");
转载于:https://www.cnblogs.com/maydow/p/4644034.html
java Split 用法相关推荐
- Java split()用法,使用特殊字符要注意了
Java split()用法,使用特殊字符要使用转义字符. 特殊字符有 * ^ : | . \ 1.单个符号作为分隔符 特殊符号* .split("\\*"); 特殊符号^ .s ...
- java正则表达式用法示例_Java正则表达式教程及示例
java正则表达式用法示例 当我开始使用Java时,正则表达式对我来说是一场噩梦. 本教程旨在帮助您掌握Java正则表达式,并让我定期返回以刷新我的正则表达式学习. 什么是正则表达式? 正则表达式定义 ...
- java split 坑
一 , java split简单用法public class SplitTest {public static void main(String[] args) {//一般分割String a=&qu ...
- java sftp.mkdir 报错,java mkdir用法
java mkdir用法 [2021-02-10 09:22:55] 简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace("/( ...
- Java split方法详细讲解
今天是圣诞节,我是中国人,无视圣诞节. 文章可能有点长,看下来必定有所收获. 没有学过正则表达式的去b站看,一个半小时应该可以看完,要看请点这里 这是必备的前置技能,不懂得话没法真正明白split用法 ...
- java split方法注意事项
最近分析数据时,需要将数据分割组合,再分割,清洗后获得需要的数据.分割数据时,会使用到split方法,分割后有时会遇到问题.例如,是否以分割 符结尾时,分割出来的字符数组长度是不一样的. 一 , ja ...
- java resume过时方法_学点开发|关于Java多线程用法解析
在进行学习之前,我们先来了解下,什么是Java多线程: 多线程是实现并发机制的一种有效手段.进程和线程一样,都是实现并发的一个基本单位.为了让大家更清晰读懂关于Java多线程用法,由以下几点入手学,帮 ...
- OpenCV cv::split用法的实例(附完整代码)
OpenCV cv::split用法的实例 OpenCV cv::split用法的实例 OpenCV cv::split用法的实例 #include <iostream> #include ...
- java list用法_Java List 用法详解及实例分析
Java List 用法详解及实例分析 Java中可变数组的原理就是不断的创建新的数组,将原数组加到新的数组中,下文对Java List用法做了详解. List:元素是有序的(怎么存的就怎么取出来,顺 ...
最新文章
- “网络实名制”的背后
- 有哪些老鸟程序员知道而新手不知道的小技巧?自我感受
- C语言中判断int,long型等变量是否赋值的方法
- PKUWC2019游记
- docker php示例,Docker PHP 例子
- .NET:如何让线程支持超时?
- json在html中怎么遍历list,怎么对Json对象进行遍历呢?
- Java中int为什么占四个字节?
- c++语言定义排序函数,关于C++中定义比较函数的三种方法小结
- 如何在PHP中使用cURL连接到Tor隐藏服务?
- spark 读取elasticsearch数据
- PyTorch——nn.Conv2d和其中的padding策略,Caffe、Tensorflow的padding策略
- 面试必掌握的Mysql的11个问题
- net.sf.json.JSONArray之fromObject的坑
- Struts1框架轻易入门,经典示例
- JavaScript 设计模式——策略模式
- springboot毕设项目网上商城系统8l44b(java+VUE+Mybatis+Maven+Mysql)
- 【墨尘】变态心理学(北京大学)
- Code review是个数学问题:从二向箔说起
- 已知一个如图所示的训练数据集,其正例点是x1=(3,3),x1=(4,3),负例点是x3=(1,1),试求最大间隔分离超平面。