2

I was wondering about this crazy thing in StringUtils.split(string,separator);

I want to separate a string using a separator @@--@@ and my code goes like this.

String[] strings = StringUtils.split("kayf86@--@9@--@5r43987@!@!%%^&^$%@!@!%-@@*&%$*(&^$%@!@!%--@", "@--@");
for (String string : strings) {
    System.out.println(string);
}

I found the output as such

kayf86
9
5r43987
!
!%%^&^$%
!
!%
*&%$*(&^$%
!
!%

I use commons-lang-2.6.jar Can some one explain that how this thing had happen.

4

2 回答 2

6

StringUtils使用separatorChars参数中的任何字符作为分隔符,不一定是全部。javadoc指出

返回的字符串数组中不包含分隔符。相邻的分隔符被视为一个分隔符。

参数

  • separatorChars 用作分隔符的字符,空格分割为空

或者,您可以使用StringUtils.splitByWholeSeparator(String, String)精确@--@或任何内容进行拆分。

于 2014-01-09T03:16:22.917 回答
1

在这种情况下,它同时使用 @,- 作为分隔符,这就是产生此输出的原因。要获得准确的输出,您必须尝试其他一些“分隔符”

参考: http://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/StringUtils.html#split%28java.lang.String,%20java.lang。字符串%29

于 2014-01-09T03:29:58.530 回答