在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 用法相关推荐

  1. Java split()用法,使用特殊字符要注意了

    Java split()用法,使用特殊字符要使用转义字符. 特殊字符有 * ^ : | . \ 1.单个符号作为分隔符  特殊符号* .split("\\*"); 特殊符号^ .s ...

  2. java正则表达式用法示例_Java正则表达式教程及示例

    java正则表达式用法示例 当我开始使用Java时,正则表达式对我来说是一场噩梦. 本教程旨在帮助您掌握Java正则表达式,并让我定期返回以刷新我的正则表达式学习. 什么是正则表达式? 正则表达式定义 ...

  3. java split 坑

    一 , java split简单用法public class SplitTest {public static void main(String[] args) {//一般分割String a=&qu ...

  4. java sftp.mkdir 报错,java mkdir用法

    java mkdir用法 [2021-02-10 09:22:55]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace("/( ...

  5. Java split方法详细讲解

    今天是圣诞节,我是中国人,无视圣诞节. 文章可能有点长,看下来必定有所收获. 没有学过正则表达式的去b站看,一个半小时应该可以看完,要看请点这里 这是必备的前置技能,不懂得话没法真正明白split用法 ...

  6. java split方法注意事项

    最近分析数据时,需要将数据分割组合,再分割,清洗后获得需要的数据.分割数据时,会使用到split方法,分割后有时会遇到问题.例如,是否以分割 符结尾时,分割出来的字符数组长度是不一样的. 一 , ja ...

  7. java resume过时方法_学点开发|关于Java多线程用法解析

    在进行学习之前,我们先来了解下,什么是Java多线程: 多线程是实现并发机制的一种有效手段.进程和线程一样,都是实现并发的一个基本单位.为了让大家更清晰读懂关于Java多线程用法,由以下几点入手学,帮 ...

  8. OpenCV cv::split用法的实例(附完整代码)

    OpenCV cv::split用法的实例 OpenCV cv::split用法的实例 OpenCV cv::split用法的实例 #include <iostream> #include ...

  9. java list用法_Java List 用法详解及实例分析

    Java List 用法详解及实例分析 Java中可变数组的原理就是不断的创建新的数组,将原数组加到新的数组中,下文对Java List用法做了详解. List:元素是有序的(怎么存的就怎么取出来,顺 ...

最新文章

  1. “网络实名制”的背后
  2. 有哪些老鸟程序员知道而新手不知道的小技巧?自我感受
  3. C语言中判断int,long型等变量是否赋值的方法
  4. PKUWC2019游记
  5. docker php示例,Docker PHP 例子
  6. .NET:如何让线程支持超时?
  7. json在html中怎么遍历list,怎么对Json对象进行遍历呢?
  8. Java中int为什么占四个字节?
  9. c++语言定义排序函数,关于C++中定义比较函数的三种方法小结
  10. 如何在PHP中使用cURL连接到Tor隐藏服务?
  11. spark 读取elasticsearch数据
  12. PyTorch——nn.Conv2d和其中的padding策略,Caffe、Tensorflow的padding策略
  13. 面试必掌握的Mysql的11个问题
  14. net.sf.json.JSONArray之fromObject的坑
  15. Struts1框架轻易入门,经典示例
  16. JavaScript 设计模式——策略模式
  17. springboot毕设项目网上商城系统8l44b(java+VUE+Mybatis+Maven+Mysql)
  18. 【墨尘】变态心理学(北京大学)
  19. Code review是个数学问题:从二向箔说起
  20. 已知一个如图所示的训练数据集,其正例点是x1=(3,3),x1=(4,3),负例点是x3=(1,1),试求最大间隔分离超平面。

热门文章

  1. mysql主从从配置详解_MySQL主从配置详解
  2. Java技术:serialVersionUID作用介绍
  3. 程序员幽默:伤不起,我就是这样的程序员
  4. android 首页布局变换,Android XML布局与View之间的转换
  5. ios开发 多人语音聊天_手游语音市场的现状、机遇与挑战
  6. Ubuntu18.04的vim和ifconfig的安装
  7. 数据库---练习题(45道)
  8. mes建设指南_给予和接受建设性批评的设计师指南
  9. JS:封装函数判断数据类型
  10. 新服务器安装和配置zabbix的playbook