java String.split()函数的用法分析

本文详细介绍了Java中String.split()方法的使用技巧,包括如何正确处理特殊字符、使用正则表达式分隔字符串以及理解split行为特性等。通过具体实例展示了不同情况下split方法的返回结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在java.lang包中有String.split()方法的原型是:
public String[] split(String regex, int limit)
split函数是用于使用特定的切割符(regex)来分隔字符串成一个字符串数组,函数返回是一个数组。在其中每个出现regex的位置都要进行分解。
需要注意是有以下几点:
(1)regex是可选项。字符串或正则表达式对象,它标识了分隔字符串时使用的是一个还是多个字符。如果忽略该选项,返回包含整个字符串的单一元素数组。
(2)limit也是可选项。该值用来限制返回数组中的元素个数。
(3)要注意转义字符:“.”和“|”都是转义字符,必须得加"\\"。同理:*和+也是如此的。
如果用“.”作为分隔的话,必须是如下写法:
String.split("\\."),这样才能正确的分隔开,不能用String.split(".");
如果用“|”作为分隔的话,必须是如下写法:
String.split("\\|"),这样才能正确的分隔开,不能用String.split("|");
(4)如果在一个字符串中有多个分隔符,可以用“|”作为连字符,比如:“acountId=? and act_id =? or extra=?”,把三个都分隔出来,可以用
String.split("and|or");

(5)split函数结果与regex密切相关,常见的几种情况如下所示:

public class SplitTest {
	public static void main(String[] args) {
		String str1 = "a-b";		
		String str2 = "a-b-";
		String str3 = "-a-b";
		String str4 = "-a-b-";
		String str5 = "a";
		String str6 = "-";
		String str7 = "--";
		String str8 = "";
		
		split(str1);
		split(str2);
		split(str3);
		split(str4);
		split(str5);
		split(str6);
		split(str7);
		split(str8);
	}
	public static void split(String demo){
		String[] array = demo.split("-");
		int len = array.length;
		System.out.print("\"" + demo + "\" 分割后的长度为:" + len);
		if(len >= 0)
		{
			System.out.print(",分割后的结果为:");
			for(int i=0; i<len; i++)
			{
				System.out.print(" \""+array[i]+"\"");
			}			
		}
		System.out.println();
	}
}
运行结果为:
"a-b" 分割后的长度为:2,分割后的结果为: "a" "b"
"a-b-" 分割后的长度为:2,分割后的结果为: "a" "b"
"-a-b" 分割后的长度为:3,分割后的结果为: "" "a" "b"
"-a-b-" 分割后的长度为:3,分割后的结果为: "" "a" "b"
"a" 分割后的长度为:1,分割后的结果为: "a"
"-" 分割后的长度为:0,分割后的结果为:
"--" 分割后的长度为:0,分割后的结果为:
"" 分割后的长度为:1,分割后的结果为: ""
由此可以得出来:
当字符串只包含分隔符时,返回数组没有元素;
当字符串不包含分隔符时,返回数组只包含一个元素(该字符串本身);
字符串最尾部出现的分隔符可以看成不存在,不影响字符串的分隔;
字符串最前端出现的分隔符将分隔出一个空字符串以及剩下的部分的正常分隔;


转载自:http://swiftlet.net/archives/709

### Java 中 `String.split()` 方法详解 #### 基本概念 `split()` 是 Java 的 `String` 类中的一个重要方法,用于按照指定的规则将字符串分割成多个子串,并返回这些子串组成的数组。此方法支持两种重载形式: - `public String[] split(String regex)` - `public String[] split(String regex, int limit)`[^1] #### 参数说明 - **regex**: 表达式模式,通常是一个正则表达式,用来匹配分隔符。 - **limit**: 可选参数,表示最大分割次数;如果该值为负数,则不限制分割次数;如果等于0,则会去除结尾处所有的空字符串。 #### 实际应用案例 考虑几个具体的例子来展示如何使用这个函数: ```java // 示例一:简单字符作为分隔符 String sentence = "你好,世界"; String parts[] = sentence.split(","); for (String part : parts){ System.out.println(part); } ``` 上述代码将会把句子按逗号分开并打印每一部分[^4]。 再来看另一个更复杂的场景——处理连续出现的分隔符情况下的行为: ```java // 示例二:处理多重复合分隔符的情况 String complexStr = "cs::ab::"; String resultArray[] = complexStr.split(":"); System.out.println(java.util.Arrays.toString(resultArray)); ``` 这段程序展示了当输入包含多个相邻冒号时的结果[^5]。 值得注意的是,在某些情况下,`split()` 函数确实依赖于内部实现的正则引擎来进行模式匹配工作,因此对于非常规或复杂模式来说可能会影响效率[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值