迴圈內抓不到變數..

看板java作者 (olo)時間13年前 (2012/08/15 15:41), 編輯推噓1(105)
留言6則, 3人參與, 最新討論串1/1
寫一個輸入輸出的程式 結果出現了以下error Exception in thread "main" java.lang.NumberFormatException: For input string: "0 " at java.lang.NumberFormatException.forInputString(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at QQ.main(QQ.java:20) 部分程式碼如下 FileReader fw1= new FileReader("c:\\Users\\Wikedia\\Desktop\\CDR201208.txt"); FileReader fw2= new FileReader("c:\\Users\\Wikedia\\Desktop\\CDR201208-2.txt"); BufferedReader bur1 = new BufferedReader(fw1); BufferedReader bur2 = new BufferedReader(fw2); BufferedWriter buw=new BufferedWriter( new FileWriter("c:\\Users\\Wikedia\\Desktop\\Answer.txt")); String s; int hour,min,sec,hour2,min2,sec2,Totalsec=0,Totalmin=0,Totalhour=0; String ext; //**** while ( (s=bur1.readLine()) !=null){ ext=s.substring(20,25); sec=Integer.parseInt(s.substring(95,97));//第20行 min=Integer.parseInt(s.substring(92,94)); hour=Integer.parseInt(s.substring(89,91)); 乍似是抓到了"0 "這個字串以至於不能轉成整數 但是嘗試在迴圈外(也就是****處)抓取sec, 是可以行得通的 不曉得為什麼在迴圈內會抓不到? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.120.208.208

08/15 16:33, , 1F
==.=== 這種 bug 把 s.substring(95,97) 印出來就解決了
08/15 16:33, 1F

08/15 16:34, , 2F
反而是迴圈外的 s 值哪裡來? 真是莫名其妙
08/15 16:34, 2F

08/15 16:59, , 3F
看起來是讀取多筆資料,第一筆就錯代表你index算錯,
08/15 16:59, 3F

08/15 17:01, , 4F
特定一筆錯代表你那筆資料格式跑掉...
08/15 17:01, 4F

08/16 13:24, , 5F
我注意到"0 "後面有多一個空白 是這個原因嗎
08/16 13:24, 5F

08/16 14:00, , 6F
parseInt 不吃空白的樣子..
08/16 14:00, 6F
文章代碼(AID): #1GArAScJ (java)