2013-03-01 90 views
0

我有這樣的代碼:數組長度沒有得到正確

<% 
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

回答

0

您最終在您的陣列中有四個「」(空)字符串

0

使用這個代替..

splitstr=str.split("\\") 
splitstr.length 
0
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 > 

即時得到它的權利!