java中split⽤法
⽤法
Java中split的⽤法
Java中的我们可以利⽤split把字符串按照指定的分割符进⾏分割,然后返回字符串数组,下⾯是string.split的⽤法实例及注意事项:java.lang.string.split
split ⽅法
将⼀个字符串分割为⼦字符串,然后将结果作为字符串数组返回。
stringObj.split([separator,[limit]])
stringObj
必选项。要被分解的 String 对象或⽂字,该对象不会被split⽅法修改。
separator
可选项。字符串或正则表达式对象,它标识了分隔字符串时使⽤的是⼀个还是多个字符。如果忽略该选项,返回包含整个字符串的单⼀元素数组。
limit
可选项。该值⽤来限制返回数组中的元素个数(也就是最多分割成⼏个数组元素,只有为正数时有影响)
split ⽅法的结果是⼀个字符串数组,在 stingObj 中每个出现 separator 的位置都要进⾏分解。separator不作为任何数组元素的部分返回。
⽰例1:
String str="Java string split test";
String[] strarray=str.split(" ");
for(int i =0; i < strarray.length; i++)
System.out.println(strarray[i]);
将输出:
Java
string
split
test
⽰例2:
String str="Java string split test";
String[] strarray=str.split(" ",2);//使⽤limit,最多分割成2个字符串
for(int i =0; i < strarray.length; i++)
System.out.println(strarray[i]);
将输出:
Java
string split test
⽰例3:
String str="192.168.0.1";
String[] strarray=str.split(".");
for(int i =0; i < strarray.length; i++)
System.out.println(strarray[i]);
结果是什么也没输出,将split(".")改为split("\\."),将输出正确结果:
192
168
1
经验分享:
1、分隔符为“.”(⽆输出),“|”(不能得到正确结果)转义字符时,“*”,“+”时出错抛出异常,都必须在前⾯加必须得加"\",如split("\|");
2、如果⽤"/“作为分隔,就得写成这样:String.split(”\//"),因为在Java中是⽤"//“来表⽰”/“的,字符串得写成这样:String
Str=“a//b//c”;
转义字符,必须得加”\";
3、如果在⼀个字符串中有多个分隔符,可以⽤"|“作为连字符,⽐如:String str=“Java string-split#test”,可以⽤Str.split(” |-|#")把每个字符串分开;
注意事项
在java.lang包中有String.split()⽅法,返回是⼀个数组。
使⽤时要注意参数如果是特殊符号的话要进⾏转义。
1、“.”和“|”都是转义字符,必须得加"\";
  如果⽤“.”作为分隔的话,必须是如下写法:
String.split("\."),这样才能正确的分隔开,不能⽤String.split(".");
如果⽤“|”作为分隔的话,必须是如下写法:
String.split("\|"),这样才能正确的分隔开,不能⽤String.split("|");
2、如果在⼀个字符串中有多个分隔符,可以⽤“|”作为连字符,⽐如:“acount=? and uu =? or n=?”,把三个都分隔出来,可以⽤
  String.split(“and|or”);
java中split的用法3、public String[] split(String regex,int limit)根据匹配给定的正则表达式来拆分此字符串。
  此⽅法返回的数组包含此字符串的每个⼦字符串,这些⼦字符串由另⼀个匹配给定的表达式的⼦字符串终⽌或由字符串结束来终⽌。数组中
  的⼦字符串按它们在此字符串中的顺序排列。如果表达式不匹配输⼊的任何部分,则结果数组只具有⼀个元素,即此字符串。
4、public string[] split(string regex)
  这⾥的参数的名称是 regex ,也就是 regular expression (正则表达式)。这个参数并不是⼀个简单的分割⽤的字符,⽽是⼀个正则表达式,
他对⼀些特殊的字符可能会出现你预想不到的结果,⽐如测试下⾯的代码:
(1) ⽤竖线 | 分隔字符串,你将得不到预期的结果
String[] aa ="aaa|bbb|ccc".split("|");//String[] aa = "aaa|bbb|ccc".split("\\|"); 这样才能得到正确的结果 for (int i = 0 ; i <aa.length ; i++ ) { System.out.println("--"+aa); }
(2)⽤竖 * 分隔字符串运⾏将抛出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); }
(3)显然,+ * 不是有效的模式匹配规则表达式,⽤"\*" “\+“转义后即可得到正确的结果。
(4) “|” 分隔串时虽然能够执⾏,但是却不是预期的⽬的,”\|“转义后即可得到正确的结果。
(5)还有如果想在串中使⽤”“字符,则也需要转义.⾸先要表达"aaaa\bbbb"这个串就应该⽤"aaaa\bbbb”,如果要分隔就应该这样才能得到正确结果:
String[] aa = “aaa\bbb\bccc”.split(\\);
(6) 还有就是点号”.",也要⾸先转义才能得到正确的结果。
第⼀种⽅法:
string s="abcdeabcdeabcde"; string[] sArray=s.Split('c');foreach(string i in sArray) Console.WriteLine(i.ToString());
输出下⾯的结果:
ab
deab
deab
de
第⼆种⽅法:
我们看到了结果是以⼀个指定的字符进⾏的分割。使⽤另⼀种构造⽅法对多个字符进⾏分割:
string s="abcdeabcdeabcde"; string[] sArray1=s.Split(new char[3]{'c','d','e'});foreach(string i in sArray1) Console.WriteLine(i.ToString());
可以输出下⾯的结果:
ab
ab
ab

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。