`
aben328
  • 浏览: 1451555 次
  • 性别: Icon_minigender_1
  • 来自: 广东
社区版块
存档分类

java中split要注意的问题

    博客分类:
  • java
阅读更多

java中split要注意的问题

关键字: java技术
在JAVA中, 在使用String.split方法分隔字符串时,但要注意有些字符不能直接用的,分隔符如果用到一些特殊字符,比如 "| " ,"*",等否则会出现问题,以前刚用时就因为这个问题而看了半天的代码。 
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("\\\\"); 
本文转自福州IT信息网(http://www.fzic.net),详细出处参考:http://www.fzic.net/SrcShow.asp?Src_ID=738 

分享到:
评论

相关推荐

    Java中Split的用法及注意

    Java中Split的用法及注意, 本文只是大概说了一下java中split的用法,其他方面要你们去查看了。

    Java正则表达式之split()方法实例详解

    主要介绍了Java正则表达式之split()方法,结合实例形式较为详细的分析了split方法的功能、使用方法及相关注意事项,需要的朋友可以参考下

    一个java正则表达式工具类源代码.zip(内含Regexp.java文件)

    以前写了一个java的正规表达式的java工具类,分享一下,有用到的欢迎下载使用。 如果你有常用的定义好的,且测试通过的正规表达式,欢迎跟贴,也让我享用一下 . 类中用到了 jakarta-oro-2.0.jar 包,请大家自己在 ...

    Java-PHP-C#

    但是注意,在上面模式中 "10." 是不匹配的, 只有 "10" 和 "10.2" 才可以. (你知道为什么吗) ^[0-9]+(\.[0-9]{2})?$ 我们上面指定小数点后面必须有两位小数.如果你认为这样太苛刻,你可以改成: ^[0-9]+(\.[0-...

    leetcode添加元素使和等于-LeetCode:LeetCode解决方案和技巧

    把str中的a都换成b split("分隔符的选择"); 除撇号外,所有非字母数字的Java字符串拆分 // 用除英文字符以外的所有符号 分割 words= Str.split("\\W+"); words = Str.split("[^\\w']+"); // 非特殊英文字符 words = ...

    java 正则表达式

    JAVA正则表达式语法(转)正则表达式语法正则表达式是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”)。模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式示例表达式 ...

    chatRoom 聊天室

    /* 注意需要及时flush,清空缓冲区 */ ps.flush(); } } catch (IOException e) { e.printStackTrace(); } } } /* * 主方法,启动聊天室服务器端 */ public static void main(String[] args) { new ...

    java时间格式大全(算法源码)

    * 根据用户传入的时间表示格式,返回当前时间的格式 如果是yyyyMMdd,注意字母y不能大写。 * * @param sformat * yyyyMMddhhmmss * @return */ public static String getUserDate(String sformat) { Date ...

    java餐饮系统源码-citypay-pan-search:CityPay的PAN搜索是一种Scala/Java敏感数据发现工具,用于搜索存在

    请注意,随此源代码提供的单元测试中的所有持卡人数据(包括 PAN)都是测试数据,并使用有效的 luhn 校验和生成。 先决条件 要运行搜索工具,您需要确保系统上安装了有效的 Java 8 运行时。 安装和入门 扫描器可以...

    咦,Java拆分个字符串都这么讲究

    提到 Java 拆分字符串,我猜你十有八九会撂下一句狠话,“这有什么难的,直接上 String 类的 split() 方法不就拉到了!”假如你真的这么觉得,那可要注意了,事情远没这么简单。 来来来,搬个小板凳坐下。 假如现在...

    Java实现 LeetCode 434 字符串中的单词数

    请注意,你可以假定字符串里不包括任何不可打印的字符。 示例: 输入: “Hello, my name is John” 输出: 5 class Solution { public int countSegments(String s) { String[] ss = s.split(" "); int count = 0; ...

    AoANet:论文代码“注意图像字幕的注意”。 ICCV 2019

    注意图像字幕注意 该存储库包括“的实现。 要求 Python 3.6 Java 1.8.0 PyTorch 1.0 苹果酒(已经添加为子模块) coco-caption(已经添加为子模块) 张量板 培训AoANet 准备数据 请参阅data/README.md详细信息...

    ORACLE,mysql,sqlserver,sybase数据库装文本软件

    自己写的数据库装载工具,平时工作中用于装载大文本文件到数据库表,也能直接装载excel,不过excel只能使用第一个sheet,且不支持合并的单元格。 jdk要求版本1.6及以上。 使用方法: java -jar lynload.jar,即可看到...

    matlab标记部分代码-Cricket-Activity-Detection:AI项目

    matlab标记部分代码板球活动检测 作者 阿肖克·库玛(Ashok Kumar) 贾夫什·加格(Javesh Garg) 该代码使用开源库以matlab,java和python编写。...注意:L1classify.java和L2classify.java分别对剪

    java8源码-Interview:对我的采访

    java8 源码 参考 1.基础 1.集合框架 1.HashMap ​ HashMap 是由链表和数组组合而成的基本数据结构 ,k-v 存储,允许null key 和null value ​ ​ 初始容量 1 &lt;&lt; 4 16 ​ 扩容因子 0.75f 即 容量 * 扩容因子 ...

    svm支持向量机python代码

    svm支持向量机python代码 在这个示例中,我们使用了 scikit-learn 库中的 datasets 模块来加载鸢尾花...需要注意的是,在实际应用中,我们可能需要对数据集进行更多的预处理和特征工程,以提高模型的准确性和鲁棒性。

    精通正则表达式~~~

    Split中带捕获型括号的match运算元... 326 巧用Perl的专有特性... 326 用动态正则表达式结构匹配嵌套结构... 328 使用内嵌代码结构... 331 在内嵌代码结构中使用local函数... 335 关于内嵌代码和my变量的忠告....

    asp.net知识库

    存储过程中实现类似split功能(charindex) 通过查询系统表得到纵向的表结构 将数据库表中的数据生成Insert脚本的存储过程!!! 2分法-通用存储过程分页(top max模式)版本(性能相对之前的not in版本极大提高) 分页存储...

    freemarker总结

    在表达式中使用算术运算符时要注意以下几点: 1,运算符两边的运算数字必须是数字 2,使用+运算符时,如果一边是数字,一边是字符串,就会自动将数字转换为字符串再连接,如:${3 + "5"},结果是:35 使用内建的int函数可...

    PHP3程序设计

    尤其值得注意的是,书中使用了多个“中场”章节,以便在学习过一定知识之后,通过实际例子来对所学的知识进行巩固,这些章节介绍的内容具有很强的实用价值。因此本书不仅对Web编程的入门者,即使对于有一定经验的Web...

Global site tag (gtag.js) - Google Analytics