数组长度没有得到正确

问题描述:

我有这样的代码:数组长度没有得到正确

<% 
str="D:\\projects\\curator\\java\\hpc" 
no=str.count("\\") 
splitstr=str.split(pattern="\\",no+1) 

%> 

在此之后我打印

<%= splitstr.length %> 

它给我的输出9。但splitstr只有5元素。
它是如何发生的。

+1

您最终在您的数组中有四个字符串。请参阅:http://stackoverflow.com/questions/11164236/how-to-split-a-string-containing-both-delimiter-and-the-escaped-delimiter – Fdr 2013-03-01 07:23:29

+1

刚刚尝试了这一点,我得到了5 https:// gist.github.com/jvnill/5063030 – jvnill 2013-03-01 07:24:19

+0

@Fdr:谢谢..那个链接帮助我找出问题。我现在得到了解决方案。 – 2013-03-01 08:13:17

您最终在您的阵列中有四个“”(空)字符串

使用这个代替..

splitstr=str.split("\\") 
splitstr.length 

1.9.3p385 :007 > str="D:\\projects\\curator\\java\\hpc" 
=> "D:\\projects\\curator\\java\\hpc" 
1.9.3p385 :008 > no=str.count("\\") 
=> 4 
1.9.3p385 :009 > splitstr=str.split(pattern="\\",no+1) 
=> ["D:", "projects", "curator", "java", "hpc"] 
1.9.3p385 :010 > splitstr.length 
=> 5 
1.9.3p385 :011 > 

即时得到它的权利!