public class test {public static void main(String[] args) {String string = "liu|zhi|wei";String []name1 = string.split("\\|");String []name2 = string.split("|");for(String s:name1){System.out.print(s+" ");//结果:liu zhi wei}for(String s:name2){System.out.print(s+" ");//结果:l i u | z h i | w e i }}
}

在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("\\\\");

split(|)正确使用方法split(\\|)相关推荐

  1. linux+多个字符分割字符串数组中,String的split()方法可以将字符串按照特定的分隔符拆分成字符串数组...

    在java.lang包中有String.split()方法,返回是一个数组------不管按照什么拆,拆出来是一个数组 String str = "1,2,3,4,5,6"; St ...

  2. split函数python 未定义_Python字符串方法split()中的一道坑

    初看这个方法还挺好用的,用来切割字符串真是的是非常方便,返回的字符串数组也非常容易处理. 于是乎看了一眼就应用到我的程序当中去了. 用来切割如下形式的字符串 s = 'Jul 24 21:38:25 ...

  3. 怎么把字符串变成数组_Java中字符串split() 的使用方法,没你想的那么简单

    先看下面的方法,事先预测一下,经过split方法,按逗号进行分割为数组之后,生成的数组的长度是多少,目测很多人都觉得是8,但是结果却出乎意料.是5而不是8. private static void t ...

  4. Java中字符串split() 的使用方法

    先看下面的方法,事先预测一下,经过split方法,按逗号进行分割为数组之后,生成的数组的长度是多少,目测很多人都觉得是8,但是结果却出乎意料.是5而不是8. private static void t ...

  5. 获取上传文件的后缀,.jpg,.png,.word,.xsl...使用方法split,lastindexOf,subtr

    获取上传文件的后缀,.jpg,.png,.word,.xsl...使用方法split,lastindexOf,subtr 一.使用详情 使用场景 使用 效果 总结 一.使用详情 使用场景 有个需求,是 ...

  6. 字符串 splice()、split() 和slice()方法

    一.作用对象 1.split()方法是对字符串的操作:splice()和slice()是对数组的操作.slice()也可用于字符串. 二.参数 1.split(separator,howmany) 参 ...

  7. Java实现split字符串分割方法

    实现方法 split, 能够指定分割符将字符串拆分成字符串数组 思路如下: 统计字符串中的目标分割符的个数. 创建字符串数组并将其初始化为 "",不初始化的话字符串数组中就会是nu ...

  8. java split 冒号_Java中字符串split() 的使用方法,没你想的那么简单

    先看下面的方法,事先预测一下,经过split方法,按逗号进行分割为数组之后,生成的数组的长度是多少,目测很多人都觉得是8,但是结果却出乎意料.是5而不是8. private static void t ...

  9. JavaScript中split()方法详解

    欢迎访问我的个人博客 http://xiaolongwu.cn/ split()方法在js处理字符串是很常见,也是很重要的一种方法必须熟练掌握 split() 方法用于把一个字符串分割成字符串数组. ...

最新文章

  1. 从今天开始收集一些经典的算法。
  2. ubuntu错误解决。
  3. 3.数据类型,运算符,表达式
  4. RunLoop总结:RunLoop的应用场景(五)
  5. mysql 1个月多少天_在MySQL日期间隔中,1个月是否与30天相同? 1个季度与3个月相同吗?等等?...
  6. 一元操作符“++”,“- ” 之强制转换数值
  7. 如何在mac上面看充电器的瓦数!
  8. 结合 AOP 轻松处理事件发布处理日志
  9. day30 并发编程
  10. 通过动态获取cookie爬取国家企业信用信息公司系统
  11. Java基础知识Set、List、Map的区别
  12. 3.2.1 封装成帧、帧定界、帧同步、透明传输(字符计数法、字符串的首尾填充法、零比特填充的首尾标志法、违规编码法)(转载)
  13. 10分钟利用django搭建一个博客
  14. 阶段3 1.Mybatis_04.自定义Mybatis框架基于注解开发_3 基于注解的自定义再分析
  15. oracle varchar2 转换成date,将Oracle VARCHAR2转换为DATE并排除无效数据
  16. 蛋花花分享人工智能概念的诞生与发展
  17. 自己怎么制作GIF表情包 QQ动态图如何制作
  18. FMI飞马网 |【线上直播】持续集成在京东研发的落地及应用
  19. c语言 power 头文件,pow - [ C语言中文开发手册 ] - 在线原生手册 - php中文网
  20. qrCode二维码生成器

热门文章

  1. 小米10系统版本Android,小米10的安卓11稳定版本再次正式推送
  2. 2015年10月19日作业
  3. 老母鸡玩客云刷inux-20.11跑容器业务 杠杠的
  4. java 表白墙_毕业季表白墙——酸酸甜甜的那种
  5. sonar代码检测工具安装文档
  6. python的未来前景,超详细根据好多资料总结出来的
  7. 当一个企业开始强调考勤打卡的时候,可能是在走下坡路?
  8. Android逆向 小米5X 抓包调试 环境配置
  9. html表格排序 箭头,使用箭头键导航HTML表格
  10. 热带雨林绘画软件测试,大班美术圆热带雨林之梦教案反思