分裂不正常

我试图将字符串中的组保存到数组中,以便在需要时可以在单个变量中使用它们。 为此,我使用split,但由于某种原因,我只得到数组中第一个位置的完整字符串:ultimate_array [0]。 如果我想使用ultimate_array [1],我会得到一个像“越界”的exception。 你知道我做错了什么吗?

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]; 

你需要转义$字符串结尾

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

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

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

你的分裂不正常的原因是分裂使用正则表达式而“$”是正则表达式的特殊字符( drekka

只需更换你的线:

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

有:

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

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