首页 > 编程语言 >Java中String的分词方法split的使用

Java中String的分词方法split的使用

时间:2022-10-30 19:12:37浏览次数:35  
标签:aa 分隔 String bbb Java split aaa

在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方法分隔字符串时,分隔符如果用到一些特殊字符,可能会得不到我们预期的结果。

我们看jdkdoc中说明

publicString[] split(String regex) Splits this string around matches ofthe 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://blog.csdn.net/he_xiang_/article/details/41007271

标签:aa,分隔,String,bbb,Java,split,aaa
From: https://www.cnblogs.com/qsds/p/16841931.html

相关文章

  • Java: Record
    /***版权所有2022涂聚文有限公司*许可信息查看:*描述:**历史版本:JDK17.01*2022-09-12创建者geovindu*2022-09-12添加Lambda*2022-09-12修......
  • 在mapper中获得inputsplit的信息
    在社区版的hadoop版本0.19/0.20中,当使用普通的输入的时候,比如job.setInputFormatClass(TextInputFormat.class);在mapper运行的时候,可以用如下的方法得到对应......
  • javaweb期中考试总结
    本次期中考试的内容和往年的类似,需要实现的功能为增删改查,利用的工具有IDEA集成环境,TomCat本地部署的服务器,MySQL数据库。利用的技术有JDBC规范,HTML标签语言,以及利用Servle......
  • Java学习——初始化对象
    一、如何使用通过注释@PostConstruct标明是初始化方法@PostConstructpublicvoidinit(){}二、注意事项初始化方法和构造方法不同,构造方法只是生成了一个对象,而初始......
  • JAVA 参数数量可变的方法 歧义
    publicclassT12{publicvoidss(Object...list){for(Objecto:list){System.out.println(o);}}publicvoidss(inti1......
  • JavaScript--Express框架重构项目逻辑
     1.Express框架介绍 *Express是高度包容、快速而极简的Node.js-Web框架   中间件  上手简单,学习门槛低具有丰富的基础API支持强大的路由功能灵活的......
  • JavaScript 使用 Notification 发送系统通知
    使用Notification可以在系统级别发送页面外部显示的桌面通知,即使浏览器在后台运行也可以向用户发出消息检查权限发送通知需要用户授权,通过只读属性Notification.per......
  • 2.单例模式(Singleton)JAVA语言实现
    单例模式实现1.私有的构造方法2.私有的静态的当前类对象作为属性3.共有的静态的方法返回当前类对象单例模式实现方式有三种(指的时对象的加载)1.饿汉式(立即加载)对象启动时就......
  • 583.delete-operation-for-two-strings 两个字符串的删除操作
    问题描述583.两个字符串的删除操作解题思路dp[i][j]表示对word1的前i个字符,word2的前j个字符,使得它们相同的最小步数:if(word1[i-1]==word2[j-1]),dp[i][j]=......
  • cryptoJs DES_CBC_Pkcs7 转成 Java
    前端DES加密:importcryptoJsfrom'crypto-js';//DES加密functionencrypt(message,key,iv){//字符串转16进制constkeyHex=cryptoJs.enc.Utf8.parse......