java 竖线分割字符串的问题

java 竖线分割字符串的问题

例1:
 String[] paraStr = "6010;320100;A".split(";");
 System.out.println(Arrays.toString(paraStr));
输出:[6010, 320100, A]

Ok

例2:
 String[] paraStr = "6010|320100|A".split("|");
 System.out.println(Arrays.toString(paraStr));
输出:[, 6, 0, 1, 0, |, 3, 2, 0, 1, 0, 0, |, A]

NO,和期望值相差甚远

例3:
 String[] paraStr = "6010+320100+A".split("+");
 System.out.println(Arrays.toString(paraStr));
输出:
Exception in thread "main" java.util.regex.PatternSyntaxException: Dangling meta character '+' near index 0
+
异常!

有现象,才能总结出结论:

使用String.split方法时要注意的问题 
 在使用String.split方法分隔字符串时,分隔符如果用到一些特殊字符,可能会得不到我们预期的结果。
我们看jdk doc中说明
public String[] split(String regex)
Splits this string around matches of the given regular expression. 
参数regex是一个 regular-expression的匹配模式而不是一个简单的String,他对一些特殊的字符可能会出现你预想不到的结果:
1.用竖线 | 分隔字符串,你将得不到预期的结果。
2.用 * 分隔字符串运行将抛出java.util.regex.PatternSyntaxException异常,用加号 + 也是如此。

显然,| + * 不是有效的模式匹配规则表达式,用"\\*" "\\+"转义后即可得到正确的字符串结果。
"|" 分隔串时虽然能够执行,但是却不是预期的目的,得到的是每个字符的分割,而不是字符串,"\\|"转义后即可得到正确的字符串结果。
还有如果想在串中使用"\"字符,则也需要转义.首先要表达"a\b"这个串就应该用"a\\b",如果要分隔就应该这样才能得到正确结果:
String[] aa = "aaa\\bbb\\bccc".split("\\\\");

注意:除了使用“\\|”外,也可以用"[.]" 进行分隔!
如:
String[] paraStr = "6010|320100|A".split("[|]");
String[] paraStr = "6010.320100.A".split("[.]");

转载于:https://www.cnblogs.com/haitao-fan/archive/2013/01/27/2878537.html

java 竖线分割字符串的问题相关推荐

  1. java:分割字符串(指定范围分割和次数)

    java:分割字符串 关键词 测试说明 补充说明 源码 运行结果 关键词 Sting[] newArray=str.split("\这里放要分割的符号",这里放分割次数); spl ...

  2. java正则表达式分割字符串_Java开发笔记(三十七)利用正则串分割字符串

    前面介绍了处理字符串的常用方法,还有一种分割字符串的场景也很常见,也就是按照某个规则将字符串切割为若干子串.分割规则通常是指定某个分隔符,根据字符串内部的分隔符将字符串进行分割,例如逗号.空格等等都可 ...

  3. 如何在Java中分割字符串

    我有一个字符串"004-034556" ,我想分成两个字符串: string1="004"; string2="034556"; 这意味着第 ...

  4. java split 分割字符串_字符串分割--java中String.split()用法

    在java.lang包中有String.split()方法,返回是一个数组. 一. "."和"|"都是转义字符,必须得加"\\"; 若是用& ...

  5. java竖线分割_Java String类的Split以竖线作为分隔符

    版权声明:本文为博主原创文章,转载请写明出处.https://blog.csdn.net/wo541075754/article/details/50668160 问题 Java中String类的Sp ...

  6. java工具类使用逗号切割字符串_【java】分割字符串工具类,霸气 jdk自带的

    java 分割字符串,分割string,可以根据多个条件去分割.比如逗号,分号,逗号或者分号. 比如一个字符串:"abc,def;gh,ij;k;lm,no,p;qr,st"按逗号 ...

  7. java中分割字符串总结 - 超级无敌详细版本。不仅要熟悉各种方法还要做到灵活运用。

    目录 1.split() 2.indexof() 3.lastIndexOf() 4.substing() 小技巧 1.split() 可有两个参数 只有第一个参数,就是以这个符号来分割 例如: St ...

  8. Java split 分割 字符串(分隔符如:* ^ : | , .) 及注意点 要转义

    (1)split表达式,其实就是一个正则表达式.* ^ | 等符号在正则表达式中属于一种有特殊含义的字符,如果使用此种字符作为分隔符,必须使用转义符即\加以转义.  (2)如果使用多个分隔符则需要借助 ...

  9. java 正则切分句子_Java开发笔记(三十七)利用正则串分割字符串

    前面介绍了处理字符串的常用方法,还有一种分割字符串的场景也很常见,也就是按照某个规则将字符串切割为若干子串.分割规则通常是指定某个分隔符,根据字符串内部的分隔符将字符串进行分割,例如逗号.空格等等都可 ...

最新文章

  1. JDK/Dubbo/Spring 三种 SPI 机制,谁更好?
  2. springboot原生mysql写法_【Rainbond最佳实践】Spring Boot框架配置MySQL
  3. 修改Nginx与Apache配置参数解决http状态码:413上传文件大小限制问题
  4. spring cloud @RefreshScope刷新问题
  5. LOJ #516. 「LibreOJ β Round #2」DP 一般看规律
  6. 做“是非题”的正确姿势
  7. 如何用FineReport制作一张报表(二)
  8. 第七章:react-ui
  9. Shiro系列-Shiro如何实现身份验证
  10. linux加protobuf变量环境,protobuf简单介绍和ubuntu 16.04环境下安装教程
  11. WPF: 本地化(Localization) 实现
  12. Linux:CentOS中SFTP工具的使用
  13. 计算机控制温度闭环控制实验,温度闭环控制实验
  14. 创建枚举类 java_Java枚举类
  15. 域名备案方法及是否需要备案
  16. 《活出生命的意义》读书笔记
  17. 已解决Resource stopwords not found. Please use the NLTK Downloader to obtain the resource:
  18. 使用Python从头实现一个神经网络
  19. [原创]戒盈祈愿(200509总结)
  20. SpringGateway网关

热门文章

  1. hive shell 导入数据
  2. Carlosfu技术系列文章总目录
  3. mysql delete|删除 命令的注意点
  4. 操作 Wave 文件(13): waveOutGetVolume、waveOutSetVolume
  5. QQ聊天记录不会被盗取的绝招
  6. bagging算法_Bagging/Boosting傻傻分不清?来一探究竟吧~
  7. 数据库健康状况监视_监视数据库运行状况和行为:哪些指标重要?
  8. 不使用机器学习的机器视觉_使用机器学习为卡通着色
  9. 如何训练您的医生...使用开源
  10. 前端:JS/35/二级联动菜单,select对象,select对象的属性,option对象,option对象属性,实例:省份列表与城市列表的联动