在java中,有很多种方法是需要大家掌握的,只有掌握好,才能更好的进行开发,比如java的split方法,那java的split方法怎么使用?下面来我们就来给大家讲解一下java的split方法使用总结。
split 方法
将一个字符串分割为子字符串,然后将结果作为字符串数组返回。
stringObj.split([separator,[limit]])
stringObj
必选项。要被分解的 String 对象或文字。该对象不会被 split 方法修改。
separator
可选项。字符串或 正则表达式 对象,它标识了分隔字符串时使用的是一个还是多个字符。如果忽
略该选项,返回包含整个字符串的单一元素数组。
limit
可选项。该值用来限制返回数组中的元素个数。
说明:
split 方法的结果是一个字符串数组,在 stingObj 中每个出现 separator 的位置都要进行分解。separator 不作为任何数组元素的部分返回。
举例:
public class SplitDemo { public static String[] ss = new String[20]; public SplitDemo() { String s = "The rain in Spain falls mainly in the plain."; // 在每个空格字符处进行分解。 ss = s.split(" "); } public static void main(String[] args) { SplitDemo demo = new SplitDemo(); for (int i = 0; i < ss.length; i++) System.out.println(ss[i]); } }
程序结果:
The
rain
in
Spain
falls
mainly
in
the
plain.
public string[] split(string regex)
这里的参数的名称是 regex ,也就是 regular expression (正则表达式)。这个参数并不是一个简单的分割用的字符,而是一个正则表达式
public string[] split(string regex, int limit) { return pattern.compile(regex) .split(this, limit); }
split 的实现直接调用的 matcher 类的 split 的方法。读者已经知道,“ . ”在正则表达式中有特殊的含义,因此我们使用的时候必须进行转义。
只要将
String[] names = value.split(".");
改为
String[] names = value.split("//.");
就可以了。
在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方法分隔字符串时,分隔符如果用到一些特殊字符,可能会得不到我们预期的结果。
我们看jdk doc中说明
public String[] split(String regex) Splits this string around matches of the 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 p="" {<=""> 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 p = "" { <= "" > System.out.println("--" + aa[i]); }
显然, + 不是有效的模式匹配规则表达式,用"\" "\+"转义后即可得到正确的结果。
"|" 分隔串时虽然能够执行,但是却不是预期的目的,"\|"转义后即可得到正确的结果。
还有如果想在串中使用"\"字符,则也需要转义.首先要表达"aaaa\bbbb"这个串就应该用"aaaa\bbbb",如果要分隔就应该这样才能得到正确结果,
String[] aa = "aaa\bbb\bccc".split("\\");
split 的实现直接调用的 matcher 类的 split 的方法。在使用String.split方法分隔字符串时,分隔符如果用到一些特殊字符,可能会得不到我们预期的结果。在正则表达式中有特殊的含义的字符,我们使用的时候必须进行转义,示例:
public class StringSplit { public static void main(String[] args) { String value = "192.168.128.33"; // 注意要加\\,要不出不来,yeah String[] names = value.split("\\."); for (int i = 0; i < names.length; i++) { System.out.println(names[i]); } } }
split分隔符总结
1.字符"|","*","+"都得加上转义字符,前面加上"\"。
2.而如果是"\",那么就得写成"\\"。
3.如果一个字符串中有多个分隔符,可以用"|"作为连字符。
比如:String str = "Java string-split#test",可以用Str.split(" |-|#")把每个字符串分开。这样就把字符串分成了3个子字符串。
public class StringSplit { public static void main(String[] args) { String str1 = "1,2,3,4,5,6"; String[] s1 = str1.split(","); for (int i = 0; i < s1.length; i++) { < p = "" > System.out.print(s1[i] + " "); } System.out.println("\n-------------"); String str2 = "192.168.128.11"; String[] s2 = str2.split("\\."); for (int j = 0; j < s2.length; j++) { < p = "" > System.out.print(s2[j] + " "); } System.out.println("\n-----------------"); String str3 = "aaa|bbb|ccc|ddd"; //String[] s3 = str3.split("|"); //得到错误的结果 String[] s3 = str3.split("\\|"); for (int k = 0; k < s3.length; k++) < p = "" > { System.out.print(s3[k] + " "); } System.out.println("\n-----------------"); String str4 = "aaa*bbb*ccc"; //String[] s4 = str4.split("*"); 得到错误的结果 String[] s4 = str4.split("\\*"); for (int n = 0; n < s4.length; n++) { < p = "" > System.out.print(s4[n] + " "); } } }
java的split方法使用总结就是以上这些了,split 方法是将一个字符串分割为子字符串,然后将结果作为字符串数组返回,作为程序员我们一定要掌握它的使用方法哦!最后大家如果想要了解更多java常见问题知识,敬请关注奇Q工具网。
推荐阅读: