5

我正在尝试将字符串中的组保存到数组中,以便在需要时可以在单个变量中使用它们。为此,我使用拆分,但由于某种原因,我只能在数组的第一个位置获得完整的字符串: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

The split takes an regular expression and $ is a special character (end of string) so you have to escape it with backslash \. Anyway it is also special character, this time in Java, so you have to escape it also. The final code is:

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

You need to escape $ (end of string)

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 回答