我要將歌詞從txt檔,用BufferedReader.readLine()將資料放進hashMap裡,
我使用String.indexof("a")==1做判斷式,如果第1位是a,那我就不要將這一行放入hashMap。
這個動態歌詞的txt檔一部份是這樣的
[ti:煙花易冷]
[ar:周杰倫]
[al:跨時代]
[by:253057646]
[ar:周杰倫]
[al:跨時代]
[by:253057646]
[00:11.62]繁華聲 遁入空門 折煞了世人
[00:17.59]夢偏冷 輾轉一生 情債又幾本
[00:17.59]夢偏冷 輾轉一生 情債又幾本
我的目的只要將"[00:11.62]繁華聲 遁入空門 折煞了世人"這類型的完整歌詞放進hashMap,
怎麼說"a"都應該在第1位元吧,
但怪異的是Eclipse一直跳出判斷式,
可是相同的程式碼在Netbeans去執行卻沒問題。
老師幫我抓出String.indexof("a")的位置居然是==2,
在[ar:周杰倫]的"[a"前面,居然隱藏了一個空字元!
更怪的來了,當我真的將[a改成==2後,進入判斷式,判斷式裡面使用一個switch去抓出每行歌詞的資料,
我一樣用String.indexof("[")
但是這時候"["又變成==0!
在一旁跟我一起開發mp3的同學,稱此所謂幽靈程式。
老兄,七月還沒到哩!
This comment has been removed by a blog administrator.
ReplyDelete一開始從StreamBuffer裡面讀出的byte[]被轉成Unicode文字就出問題了.
ReplyDelete主要是Windows裡面對UTF8的支援相當怪異,會在檔頭亂加東西.