在Java中,split()方法用于分隔字符串,可以根据匹配给定的正则表达式来拆分字符串。split()方法可以将一个字符串分割为子字符串,然后将结果作为字符串数组返回;语法“stringObj.split([regex,[limit]])”,参数regex指定正则表达式分隔符,limit指定分割的份数。
本教程操作环境:windows7系统、java8、Dell G3电脑。
java split()方法介绍
Java中的split()主要用于分隔字符串,可以根据匹配给定的正则表达式来拆分字符串。
split方法可以将一个字符串分割为子字符串,然后将结果作为字符串数组返回。
stringObj.split([regex,[limit]])
stringObj:必选项。要被分解的 String 对象或文字。该对象不会被 split 方法修改。
regex:可选项。字符串或 正则表达式 对象,它标识了分隔字符串时使用的是一个还是多个字符。如果忽略该选项,返回包含整个字符串的单一元素数组。
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.
分隔符可以是任意字符、符号、数字、字符串等。
1、split(String regex)
1.1 单个分隔符
public class Test { public static void main(String[] args) { String str="2018,text,今天"; //单个分隔符用引号括起来即可 String[] data = str.split(","); for(int i=0;i< data.length;i++){ System.out.println(data[i]); } } }
上述代码输出结果
如果分隔符本身就是"|",那么就需要使用转义字符"\"让其产生效果,否则结果相反。
public class Test { public static void main(String[] args) { String str="a|bc|8"; //java中\\表示一个普通\,\+特殊字符表示字符本身 String[] data = str.split("\\|"); for(int i=0;i< data.length;i++){ System.out.println(data[i]); } } }
反之如果直接使用则会有相反效果, 输出字符串中的单个字符。如下所示:
public class Test { public static void main(String[] args) { String str="a|bc|8"; //java中\\表示一个普通\,\+特殊字符表示字符本身 String[] data = str.split("|"); for(int i=0;i< data.length;i++){ System.out.println(data[i]); } } }
1.2 多个分隔符
public class Test { public static void main(String[] args) { String str="2021年11月18日;英语,数学,语文;"; //多个分隔符用引号括起来,并且用“|”进行分割 String[] data = str.split(",|;"); for(int i=0;i< data.length;i++){ System.out.println(data[i]); } } }
1.3 正则表达式表示分隔符
在正则表达式中"\d+"表示一个或多个数字,是用于从一堆数字字母以及其它字符组成的字符串中获取非数字字符或字符串。
public class Test { public static void main(String[] args) { String str="2018年11月18日abcd85gg688"; //正则表达式中\d+表示一个或多个数字,java中\\表示一个普通\ String[] data = str.split("\\d+"); for(int i=0;i< data.length;i++){ System.out.println(data[i]); } } }
上述代码输出结果
特殊情况
字符串开头有分隔符:开头产生一个空字符串,其余正常。
分隔符相互紧挨着:每两个分隔符产生一个空字符串,若有三个分隔符则会有2各空字符,以此类推。
字符串最尾部有分割符:末尾产生一个空字符串,其余正常。
2、split(String regex, int limit)
如果 limit > 0,(从左到右)最多分割 n - 1 次,数组的长度将不会大于 n,结尾的空字符串不会丢弃。
如果 limit
如果 limit = 0,匹配到多少次就分割多少次,数组可以是任何长度,并且结尾空字符串将被丢弃。
也就是说,使用split方法时,如果只填一个正则表达式,结尾空字符串将被丢弃
(1)split表达式,其实就是一个正则表达式。* ^ | 等符号在正则表达式中属于一种有特殊含义的字符,如果使用此种字符作为分隔符,必须使用转义符即\\加以转义。
(2)如果使用多个分隔符则需要借助 | 符号,如二所示,但需要转义符的仍然要加上分隔符进行处理
更多编程相关知识,请访问:编程教学!!
以上がJavaのsplit()メソッドの用途は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。