Java String中的split方法如何使用

今天小编给大家分享一下Java String中的split方法如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

String中split方法使用

String的split()方法用于按传入的字符或字符串对String进行拆分,返回拆分之后的数组。

1、一般用法

用一般的字符,例如@或,等符号做分隔符时:

String address="上海@上海市@闵行区@吴中路";
String[] splitAddr=address.split("@");
System.out.println(splitAddr [0]+splitAddr [1]+splitAddr [2]+splitAddr [3]);

2、需要转义的分隔符

当使用* ^ : | . \等6个符号做分隔符时,上述6个符号转义字符,必须得加"\\",即split(“\\^”)等。第二个“\”是用来给这6种符号转义,第一个“\”是用来给第二个“\”转义。

String address="上海*上海市*闵行区*吴中路";
String[] splitAddr=address.split("\\*");  
System.out.println(splitAddr[0]+splitAddr[1]+splitAddr[2]+splitAddr[3]);

其中有个更特殊的,就是“\”。如果字符串中想要使用"\",就应该使用"\\"进行转义。也就是说,对于"a\b",应该写成"a\\b",而如果想要用split方法针对"\"进行拆分,应该使用"a\\b".split("\\\\")。

3、多个符号作为分隔符

可以用“|”字符作为连字符,把多个分隔符分隔的内容都区分开:

String address="上海^上海市@闵行区#吴中路";
String[] splitAddr=address.split("\\^|@|#");
System.out.println(splitAddr[0]+splitAddr[1]+splitAddr[2]+splitAddr[3]);

4、空值的存储

如果split(String s)函数产生了空值,那么不会存到数组中。可以通过使用它的重载函数split(";",-1)实现空值的保存。这里的“;”只是作为分隔符的一个例子。

String.split()需要的转义字符

注意“/”和“-”,"&"不是转义字符。

String str="aaaa/aaaa/aaaa";
String[] strings=str.split("/");
for (int i = 0; i < strings.length; i++) {
    System.out.println(strings[i]);
}
String str="aaaa-aaaa-aaaa";
String[] strings=str.split("-");
for (int i = 0; i < strings.length; i++) {
    System.out.println(strings[i]);
}
String str="aaaa&aaaa&aaaa";
String[] strings=str.split("&");
for (int i = 0; i < strings.length; i++) {
    System.out.println(strings[i]);
}

转义字符

  • |

  • \

  • $

  • *

  • +

  • .

  • ?

  • ^

  •  

  • (

  • )

  • [

  • ]

  • {

  • }

String str="aaaa|aaaa|aaaa";
String[] strings=str.split("\\|");
for (int i = 0; i < strings.length; i++) {
    System.out.println(strings[i]);
}
String str="aaaa\\aaaa\\aaaa";
String[] strings=str.split("\\\\");
for (int i = 0; i < strings.length; i++) {
    System.out.println(strings[i]);
}
String str="aaaa$aaaa$aaaa";
String[] strings=str.split("\\$");
for (int i = 0; i < strings.length; i++) {
    System.out.println(strings[i]);
}
String str="aaaa*aaaa*aaaa";
String[] strings=str.split("\\*");
for (int i = 0; i < strings.length; i++) {
    System.out.println(strings[i]);
}
String str="aaaa+aaaa+aaaa";
String[] strings=str.split("\\+");
for (int i = 0; i < strings.length; i++) {
    System.out.println(strings[i]);
}
String str="aaaa.aaaa.aaaa";
String[] strings=str.split("\\.");
for (int i = 0; i < strings.length; i++) {
    System.out.println(strings[i]);
}
String str="aaaa?aaaa?aaaa";
String[] strings=str.split("\\?");
for (int i = 0; i < strings.length; i++) {
    System.out.println(strings[i]);
}
String str="aaaa^aaaa^aaaa";
String[] strings=str.split("\\^");
for (int i = 0; i < strings.length; i++) {
    System.out.println(strings[i]);
}
String str="aaaa(aaaa(aaaa";
String[] strings=str.split("\\(");
for (int i = 0; i < strings.length; i++) {
    System.out.println(strings[i]);
}

所有的括号都是转义字符。 

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注