欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java的split()函数

程序员文章站 2022-07-05 09:09:59
...

今天用到String的split()函数,调试半天不好使!

1.split()函数,根据给定的正则表达式的匹配来拆分此字符串,但是不能包含正则特殊字符 . |

2.下面是官方的API文档

split

public String[] split(String regex)
根据给定的正则表达式的匹配来拆分此字符串。

该方法的作用就像是使用给定的表达式和限制参数 0 来调用两参数 split 方法。因此,结果数组中不包括结尾空字符串。

例如,字符串 "boo:and:foo" 产生带有下面这些表达式的结果:

Regex 结果
: { "boo", "and", "foo" }
o { "b", "", ":and:f" }

 

参数:
regex - 定界正则表达式
返回:
字符串数组,根据给定正则表达式的匹配来拆分此字符串,从而生成此数组。

 

3.正确应用

		String str = ""+"aaa"+":"+"bbb"+"";
		String[] test = str.split(":");
		System.out.println(test[0]);
		System.out.println(test[1]);
				
		String str333 = ""+"aaa"+","+"bbb"+"";
		String[] test333 = str333.split(",");
		System.out.println(test333[0]);
		System.out.println(test333[1]);
		
		String str222 = ""+"aaa"+"|"+"bbb"+"";
		String[] test222 = str222.split("\\|");//其中|需要转义
		System.out.println(test222[0]);
		System.out.println(test222[1]);
		
		String str444 = ""+"aaa"+"."+"bbb"+"";
		String[] test444 = str444.split("\\.");//其中.需要转义
		System.out.println(test444[0]);
		System.out.println(test444[1]);

 

4.网站搜索内容

 

.在正则表达式里面是特殊字符,可以查看API Pattern

预定义字符类
. 任何字符(与行结束符可能匹配也可能不匹配)

对于特殊字符,必须用\进行转义,

所以正确的分解为:String s="a.txt";
String a[]=s.split("\\.");-->第一个\是java本身对第二个\得转义,第二个\是对后面的.进行正则转义。