java中split方法的特殊用法
2017-08-18 18:45
281 查看
在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"。
相关文章推荐
- 关于java的split方法的转义用法
- 在JAVA中, 在使用String.split方法时要注意的一些特殊分隔字符串
- java中split()方法的特殊分割符"|"和"."
- java中split方法的用法
- java.lang.String的 split方法用法总结
- java中用split()方法分割字符串--用特殊字符分割得不到想要的结果的情况
- java中split方法的用法
- java字符串分解 StringTokenizer用法(比split()方法效率高)
- Java String.split()特殊字符的用法
- JAVA 中split的用法将字符串变成数组,利用SPLIT方法写的JAVA里的字符串替换函数(转)
- java.lang.string.split 方法的用法
- Java String.split()的特殊用法
- java中split方法的用法
- JAVA基础再回首(二十二)——转换流概述及用法、简化写法FileWriter和 FileReader、字符缓冲流及特殊用法、字节流字符流复制文件方法总结
- [原创]Java中使用File类的list方法获取一定数量的文件:FilenameFilter接口的特殊用法
- 关于java的split方法的转义用法
- C# ToString()方法一些特殊用法
- String.split方法分隔特殊字符"/"
- Java解析网络数据流的三种特殊方法介绍
- [搬家文]java的regex.Matcher 使用一例(group()方法用法)