5

必要に応じて個々の変数で使用できるように、グループを文字列で配列に保存しようとしています。このために私はsplitを使用しますが、何らかの理由で、配列の最初の位置にある完全な文字列のみを取得します:ultimate_array[0]。Ultimate_array [1]を使用したい場合、「範囲外」のような例外が発生します。私が何を間違っているのか分かりますか?

String string_final = "";
String[] ultimate_array = new String[100];
String sNrFact = "";

string_final="Nrfact#$idfact1#$valfact1#$idfact2#$valfact2#$idfact3#$valfact3#$idfact4#$valfact4#$idfact5#$valfact5#$idfact6#$valfact6#$idfact7#$valfact7#$idfact8#$valfact8#$idfact9#$valfact9#$idfact10#$valfact10";

ultimate_array = string_final.split("#$");
sNrFact = ultimate_array[0];
4

4 に答える 4

3

分割は正規表現を取り、$特殊文字(文字列の終わり)であるため、バックスラッシュでエスケープする必要があります\。とにかく、今回はJavaの特殊文字でもあるので、それもエスケープする必要があります。最終的なコードは次のとおりです。

ultimate_array = string_final.split("#\\$");
于 2012-09-10T05:46:02.067 に答える
2
ultimate_array = string_final.split("#\\$");

分割が正しく機能しない理由は、分割が正規表現を使用し、「$」が正規表現の特殊文字であるためです(drekka

于 2012-09-10T05:44:09.123 に答える
2

エスケープする必要があります$文字列の終わり

ultimate_array = string_final.split("#\\$");
于 2012-09-10T05:46:15.007 に答える
0

行を置き換えるだけです:

ultimate_array = string_final.split("#$"); 

と:

ultimate_array = string_final.Split(new string[] { "#$" }, StringSplitOptions.None);

私はあなたの問題が解決されることを願っています...

于 2012-09-10T06:17:49.763 に答える