java split函数中由于正则表达式所引起的问题

在使用String.split方法分隔字符串时,但要注意有些字符不能直接用,分隔符如果用到一些特殊字符,比如 "| " ,"*",等正则表达式中的特殊字符则会出现问题。

在正则里|有特殊含义,所以用/|转译为|,而java里/又有特殊含义,所有想要用|就只能是//|再转义一次。

 

eg.

 

public class SplitTest{ public static void main(String[] args){ String[] str = "|12|3".split("|"); System.out.println("str:|12|3 split with |"); System.out.println("length: " + str.length); for(String s : str){ System.out.println(s); } System.out.println("str1:a12a3 split with a"); String[] str1 = "a12a3".split("a"); System.out.println("length: " + str1.length); for(String s : str1){ System.out.println(s); } System.out.println("str2:|12|3 split with //|"); String[] str2 = "|12|3".split("//|"); System.out.println("length: " + str2.length); for(String s : str2){ System.out.println(s); } } }

 

result:

 

str:|12|3 split with | length: 6 | 1 2 | 3 str1:a12a3 split with a length: 3 12 3 str2:|12|3 split with //| length: 3 12 3

你可能感兴趣的:(java,正则表达式,String,Class)