拆分不正常

时间:2012-09-10 05:41:42

标签: java split

我正在尝试将字符串中的组保存到数组中,以便在需要时可以在单个变量中使用它们。为此,我使用 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 个答案:

答案 0 :(得分:3)

split包含一个正则表达式,$是一个特殊字符(字符串结尾),所以你必须用反斜杠\来转义它。无论如何它也是特殊的角色,这次是在Java中,所以你也必须逃避它。最终的代码是:

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

答案 1 :(得分:2)

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

您的拆分无法正常工作的原因是split使用正则表达式而“$”是正则表达式的特殊字符( drekka

答案 2 :(得分:2)

您需要转义$字符串结尾

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

答案 3 :(得分:0)

只需更换你的行:

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

使用:

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

我希望你的问题得到解决......