0
此問題會導致在以下代碼摘錄無限循環的結尾,則返回意外的字符: source =「trash」 nTags = 2java.io.StringReader.read()(爪哇8)處的String
使用調試器我意識到,在字符串完全迭代後,read()方法永遠返回char'\ uFFFF'65535。所以我的問題是爲什麼?
謝謝!
此問題會導致在以下代碼摘錄無限循環的結尾,則返回意外的字符: source =「trash」 nTags = 2java.io.StringReader.read()(爪哇8)處的String
使用調試器我意識到,在字符串完全迭代後,read()方法永遠返回char'\ uFFFF'65535。所以我的問題是爲什麼?
謝謝!
因爲stringReader.read()
返回-1
作爲流結束,但是您將它轉換爲char
這是Java中唯一的無符號數據類型。所以,而不是-1
你得到65535
流結束,因此永遠不會打破while循環。
您可能想要將讀入的內容轉換爲內部的char
,而不是在while條件下。
'finally'塊中的'return'語句是[壞主意](http://stackoverflow.com/questions/48088/returning-from-a-finally-block-in-java)。 – Jesper
爲什麼不用'String.charAt()'代替? –
爲什麼String.charAt更好? –