Apache StringUtils分割関数は狂っています
-
21-12-2019 - |
質問
私はこの狂ったことについて疑問に思っていた 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)
正確に分割するには @--@
またはそれが何であれ。
他のヒント
このシナリオでは、@、-の両方をセパレータとして使用するため、この出力が生成されます。正確な出力のためには、他の"セパレータ"を試してみる必要があります
所属していません StackOverflow