[問題] InputStreamReader.read()練習

看板java作者 (不能閒下來!!)時間11年前 (2014/05/14 12:04), 11年前編輯推噓1(109)
留言10則, 2人參與, 最新討論串1/1
問題: 用while 讀取至換行字元(變數i指向換行字元), for(j=0;j<i;j++)卻會印出換行字元 char[80] i char[0] char[1] Char[2] Char[3] Char[4] L O V E '\n' code: https://www.dropbox.com/s/rci9tepjqg8mbt1/inputReader.rar http://ideone.com/7GyCfL /**Start**/ InputStreamReader s1 = new InputStreamReader(System.in); while ((ch[i] = (char) s1.read()) != 10) {i++;} /*output*/ for (int j = 0; j < i; j++) System.out.print(" \"" + ch[j] + "\""); System.out.println("不會自動換行"); error:https://www.dropbox.com/s/ei4ad7tuzt6d4ox/inputreader.jpg
嘗試: 1. Method:"while" check http://ideone.com/Ljzt1e 2. for(j=0;j0m< i-10m;j++) 結果正確,但不符合邏輯... 3. google InputStreamBuffer.read();用法 大大們感謝了!本魯菜比巴... 練習都遇到一堆Bug -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.161.138.215 ※ 文章網址: http://www.ptt.cc/bbs/java/M.1400040242.A.431.html ※ 編輯: kingofsdtw (1.161.138.215), 05/14/2014 12:05:34

05/14 12:07, , 1F
網路上有很多貼程式碼的地方 codepad, gist, ideone
05/14 12:07, 1F
ty!! ※ 編輯: kingofsdtw (1.161.138.215), 05/14/2014 12:29:34

05/14 12:14, , 2F
然後,對你的問題,我建議你把每個字的ASCII碼印出來看看
05/14 12:14, 2F

05/14 12:19, , 3F
同感。要直接能在版上呈現足夠資料才能增加回復的意願。
05/14 12:19, 3F

05/14 12:20, , 4F
儘可能把問題濃縮到不需要放外部 link。在上一篇有些 link
05/14 12:20, 4F

05/14 12:21, , 5F
已經消失了。這樣發問的型式,我個人就不太有看的意願了
05/14 12:21, 5F

05/14 12:21, , 6F
因為問題可能過沒多久就斷頭了,無法在版上累積成知識。
05/14 12:21, 6F
※ 編輯: kingofsdtw (1.161.138.215), 05/14/2014 12:34:50

05/14 12:34, , 7F
不知道你有沒有注意到,在ideone上的輸出就是你預期的
05/14 12:34, 7F
實際在cmd下跑換行鍵會印出來...,ideone似乎不吃換行鍵 .. ※ 編輯: kingofsdtw (1.161.138.215), 05/14/2014 12:36:51

05/14 12:52, , 8F
http://ideone.com/HJFIB2 < 把這個再自己的電腦上跑跑看
05/14 12:52, 8F
結果: https://www.dropbox.com/s/27rchmaljr6go6f/inputreader2.jpg
xd~ ※ 編輯: kingofsdtw (1.161.138.215), 05/14/2014 13:00:44

05/14 13:04, , 9F
很明顯的,多出來的鍵不是\n,而是某個ASCII碼為13的東西
05/14 13:04, 9F
感謝大大 @@! ※ 編輯: kingofsdtw (1.161.138.215), 05/14/2014 13:06:32

05/14 13:06, , 10F
05/14 13:06, 10F
文章代碼(AID): #1JSkioGn (java)
文章代碼(AID): #1JSkioGn (java)