Discussion:
[問題] 算字數
(时间太久无法回复)
~風華亂舞~
2007-04-12 05:28:34 UTC
Permalink
這是一個很簡單的問題,
不過我翻來翻去找不到是哪個method,煩請知道的告知一下


情境是這樣的,我要在文章裡算某字串出現的字數,
比如說,在小紅帽的故事裡算『小紅帽』出現的次數
問題就是這樣...

目前我的作法是用StringTokenizer去切,

java.util.StringTokenizer st=new java.util.StringTokenizer(content,"小紅帽");
int result=st.countTokens()-1 ;


,但是結果不一定準確,我猜是因為中文的關係,煩請告知更好作法,謝謝

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.73.68
小安
2007-04-12 05:41:52 UTC
Permalink
※ 引述《yishung (~風華亂舞~)》之銘言:
: 這是一個很簡單的問題,
: 不過我翻來翻去找不到是哪個method,煩請知道的告知一下
: 情境是這樣的,我要在文章裡算某字串出現的字數,
: 比如說,在小紅帽的故事裡算『小紅帽』出現的次數
: 問題就是這樣...
: 目前我的作法是用StringTokenizer去切,
: java.util.StringTokenizer st=new java.util.StringTokenizer(content,"小紅帽");
我記得後面那個參數,是遇到其中任何一個字元就會切開

也就是說如果 content = "我是小白";
這樣會被切成 "我是", "白" 兩個部份

不過跟 String.split() 不同的是,
如果 content = "我是小紅帽"
結果並不會變成 "我是", "", ""



如果是我要計算的話,應該會用 indexOf 搭配迴圈吧

或著是一些比較偷懶的做法.. content.replace("小紅帽", "")
然後去計算總共少了幾個字元....XD

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.131.68.61
ha(ruhi|yate)ism
2007-04-12 06:11:38 UTC
Permalink
※ 引述《yishung (~風華亂舞~)》之銘言:
: 這是一個很簡單的問題,
: 不過我翻來翻去找不到是哪個method,煩請知道的告知一下
: 情境是這樣的,我要在文章裡算某字串出現的字數,
: 比如說,在小紅帽的故事裡算『小紅帽』出現的次數
: 問題就是這樣...
: 目前我的作法是用StringTokenizer去切,
: java.util.StringTokenizer st=new java.util.StringTokenizer(content,"小紅帽");
: int result=st.countTokens()-1 ;
: ,但是結果不一定準確,我猜是因為中文的關係,煩請告知更好作法,謝謝
會錯的原因應該是StringTokenizer是把分隔字串的每個字都抓出來當分隔字元

也就是說

StringTokenizer st=new StringTokenizer("1_2,3_,4,_5_6,7_,8,_9","_,");

這會把這個字串切成9塊 而不是3塊

你要的應該是String#split(String)

--
有人喜歡邊玩遊戲邊上逼;
也有人喜歡邊聽歌邊打字。
但是,我有個請求,
選字的時候請專心好嗎?
-- 改編自「古 火田 任三郎」之開場白

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 192.192.197.115

Loading...