Java 按连续字符分割

2024-01-06

我有以下示例,以更好地解释我正在尝试做的事情:

String text = "a,b,,,,c,,";
String[] split = text.split(",");
for(int i=0;i<split.length;i++){
    System.out.println("I = "+i+" "+split[i]);
}

输出是:

I = 0 a

I = 1 b

I = 2 

I = 3 

I = 4 

I = 5 c

但是,我想要的是得到一个大小为 8 的数组,还包含:

I = 6 

I = 7

当然,最后两个元素将是空字符串,但获取它们对我来说至关重要。另外,我认为拥有它们是合乎逻辑的。我的意思是,如果我有:

String text = "a,b,,,,c,,d";

结果将是一个大小为 8 的数组,我认为这两个示例之间没有很大差异。


String[] split = text.split(",", -1);

这种行为实际上看起来很棘手,但实际上在官方文档 http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html#split%28java.lang.String,%20int%29.

如果 n 为非正数,则该模式将被应用多次 可能并且数组可以有任意长度

问题在于text.split(",")是它相当于text.split(",", 0)。使用 0 限制,如文档中所述:

如果 n 为零,则该模式将被应用多次 可能的话,数组可以有任意长度,并且尾随空字符串 将被丢弃.

您绝对不希望丢弃空字符串。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 按连续字符分割 的相关文章

随机推荐