質問

私はこの狂ったことについて疑問に思っていた 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 区切り文字としての引数ではなく、必ずしも全体ではありません。ザ- javadoc また、状態

区切り文字は、返される文字列配列には含まれません。 隣接 セパレータは1つのセパレータとして扱われます。

パラメータ

  • セパレータチャーズ 区切り文字として使用される文字は、空白でヌル分割されます

または、次のものを使用できます 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