我在想这件疯狂的事。 StringUtils.split(string,separator);

我想使用分隔符分隔一个字符串 @@--@@ 我的代码是这样的。

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

我发现输出是这样的

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

我用 commons-lang-2.6.jar 有人能解释这件事是怎么发生的吗?

有帮助吗?

解决方案

StringUtils 使用 separatorChars 参数作为分隔符,不一定是整个事情。该 贾瓦多克 还指出

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

参数

  • 分离器,分离器 用作分隔符的字符,null在空格上分割

或者,您可以使用 StringUtils.splitByWholeSeparator(String, String) 在确切的情况下分开 @--@ 不管是什么。

其他提示

在此方案中,它需要两个@, - 作为分隔符,因此为什么产生此输出。 对于精确的输出,您必须尝试其他“分隔符”

要引用: http://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/stringutils.html#split%28java.lang.string,%20java.lang.string%29

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top