頁:
[1]
字串的問題(已解決)
本帖最後由 ilikeiceblue 於 2009-4-20 05:10 PM 編輯例如 >> I'm goint to , " go back".
會印出
I
m
want
to
going
to
go
back
改怎麼寫(小弟剛學JAVA<div></div> String.split()
請參考這個方法 還是寫不出來= =".......慘了
public static void main(String[] args){
String s = "I'm want to going to , \" go back\".";
StringBuffer sb = new StringBuffer();
for(int i = 0;i < s.length();i++){
int _cahr = (int)s.charAt(i);
if((_cahr > 64 && _cahr < 91) || (_cahr > 96 && _cahr < 123)){
sb.append(s.charAt(i));
}else{
sb.append(" ");
}
}
String[] splitArray = sb.toString().split(" ");
for(int i = 0;i < splitArray.length;i++){
if(!splitArray.trim().equals("")){
System.out.println(splitArray);
}
}
}
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div> 其實2樓大的方法比較好用喔:D
參考看看
String s = "I'm want to going to , \" go back\".";
String [] tmp=s.split("[^a-zA-Z]+");
<br><br><br><br><br><div></div> 請問一下第4~第9行是什麼意思 我大概說一下,就是逐字檢查,然後英文以外的符號使用空白取代
之後再用split切割空白字元
而我上面提供那個方法是使用正規表示法,所以一行就可以做分割並存在tmp變數
你只需再使用
for(String tmps:tmp) System.out.println(tmps);就可以全部取出來了 我寫出來了 謝謝各位大大的幫忙阿...三行就可以了^_^
最後想請教一下
String [] tmp=s.split("[^a-zA-Z]+");
的[^a-zA-Z]+
他是代表什麼意義 本帖最後由 19821206 於 2009-4-20 05:07 PM 編輯
也是一樣的意思阿~分割點用非大小寫的英文字母來做切割
簡單來說遇到英文以外的符號就會當做切割點
更改標題為以解決可再獲得五分喔!
ps有錯請補充 鈉如果要切的字串s = " hello !! word ! 123 ";
我只要hello,!!,word,123
可hello前有空白,split()還是會存到空白
如何解決呢???<br><br><br><br><br><div></div>
頁:
[1]