java中split方法的特殊用法
来源:互联网 发布:淘宝花卉指南 编辑:程序博客网 时间:2024/05/07 20:01
在java.lang.String类中有split()方法,返回是一个数组,api文档中的描述如下:
public String[] split(String regex)
根据给定正则表达式的匹配拆分此字符串。
1、通常用法如下:
String t = "abcdxefg";
String[] arr = t.split("x");
最后得到的数组是:"abcd", "efg"。
2、由api文档中的描述可以看出:参数regex是正则表达式。说到正则表达式,就要考虑到元字符的特殊情况。正则表达式中的元字符有(共12个):$ ( ) * + . ? [ \ ^ { |
如果直接用这些元字符来拆分字符串,会有什么结果呢?举例如下:
String t = "abcd$efg";
String[] arr = t.split("$");
如果将举例中的"$"依次替换为其他元字符,结果有5种情况:
①\ :编译错误。
②( ) * + ? [ { :运行时会报java.util.regex.PatternSyntaxException错误。
③. :得到的数组为空,数组长度为0。
④$ ^ :字符串没有被拆分,得到的数组依然是字符串本身,数组长度为1。
⑤| :得到字符串中每个字符组成的数组,数组长度为字符串长度+1。
对于②③④⑤的情况,可以通过将split参数中每个元字符前添加"\\"来解决。比如将"$"替换成"\\$"。
而对于①的情况,由于"\"本身对于java来说也是用于转义的特殊字符,所以处理方式稍有不同。需要同时将两个字符串进行修改:
String t = "abcd\\efg";
String[] arr = t.split("\\\\");
3、如果在一个字符串中有多个分隔符,可以用“|”作为连字符,例如:
String t = "abcdxefgyhijkxlmn";
String[] arr = t.split("x|y");
最后得到的数组是:"abcd", "efg", "hijk", "lmn"。
public String[] split(String regex)
根据给定正则表达式的匹配拆分此字符串。
1、通常用法如下:
String t = "abcdxefg";
String[] arr = t.split("x");
最后得到的数组是:"abcd", "efg"。
2、由api文档中的描述可以看出:参数regex是正则表达式。说到正则表达式,就要考虑到元字符的特殊情况。正则表达式中的元字符有(共12个):$ ( ) * + . ? [ \ ^ { |
如果直接用这些元字符来拆分字符串,会有什么结果呢?举例如下:
String t = "abcd$efg";
String[] arr = t.split("$");
如果将举例中的"$"依次替换为其他元字符,结果有5种情况:
①\ :编译错误。
②( ) * + ? [ { :运行时会报java.util.regex.PatternSyntaxException错误。
③. :得到的数组为空,数组长度为0。
④$ ^ :字符串没有被拆分,得到的数组依然是字符串本身,数组长度为1。
⑤| :得到字符串中每个字符组成的数组,数组长度为字符串长度+1。
对于②③④⑤的情况,可以通过将split参数中每个元字符前添加"\\"来解决。比如将"$"替换成"\\$"。
而对于①的情况,由于"\"本身对于java来说也是用于转义的特殊字符,所以处理方式稍有不同。需要同时将两个字符串进行修改:
String t = "abcd\\efg";
String[] arr = t.split("\\\\");
3、如果在一个字符串中有多个分隔符,可以用“|”作为连字符,例如:
String t = "abcdxefgyhijkxlmn";
String[] arr = t.split("x|y");
最后得到的数组是:"abcd", "efg", "hijk", "lmn"。
阅读全文
0 0
- java中split方法的特殊用法
- java中split方法的用法
- java中split方法的用法
- java中split方法的用法
- java中split()方法的特殊分割符"|"和"."
- Java String.split()特殊字符的用法
- Java中split的用法
- Java中split的用法
- Java中split的用法
- Java中split的用法
- Java中split的用法
- Java中split的用法
- Java中split的用法
- Java中split的用法
- java中split的用法
- Java中split的用法
- Java中split的用法
- Java中split的用法
- CF --- 798 C Mike and gcd problem 【思维】
- 搭建的maven项目中pom文件中的jar全部不能导入到工程里面解决
- [SDUT](3377)数据结构实验之查找五:平方之哈希表 ---哈希查找(查找)
- 中国剩余定理(孙子定理)模板
- lower_bound()和upper_bound()详解(附源码)
- java中split方法的特殊用法
- Linux本地yum的搭建
- Lua区分公有私有接口
- 二哥的困惑II
- Humble Numbers
- tensorflow隐藏编译警告SSE4.2 and AVX instructions
- POJ3666 Making the Grade 离散化+DP
- HDU-1176 免费馅饼
- 欢迎使用CSDN-markdown编辑器