[問題] 多行輸入+格式判斷 by useDelimiter

看板java作者 (Y.C.K)時間15年前 (2010/04/20 21:12), 編輯推噓0(005)
留言5則, 2人參與, 最新討論串1/2 (看更多)
小弟我現在有筆資料如下: 5, 3, 0, 0, 7, 0, 0, 0, 0 6, 0, 0, 1, 9, 5, 0, 0, 0 0, 9, 8, 0, 0, 0, 0, 6, 0 8, 0, 0, 0, 6, 0, 0, 0, 3 4, 0, 0, 8, 0, 3, 0, 0, 1 7, 0, 0, 0, 2, 0, 0, 0, 6 0, 6, 0, 0, 0, 0, 2, 8, 0 0, 0, 0, 4, 1, 9, 0, 0, 5 0, 0, 0, 0, 8, 0, 0, 7, 9 然後我用下面的code將這樣一組資料讀入陣列 Scanner input = new Scanner(System.in).useDelimiter(", |\n"); int[][] grid = new int[9][9]; for (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { if(input.hasNextInt()) grid[i][j] = input.nextInt(); System.out.println("TEST!!!!"+" i:"+i+" j:"+j +"grid["+i+"]"+"["+j+"] = "+grid[i][j]); } } 問題來了...當我在netBean底下這樣做沒有問題. 但當我用windows的"命令提示字元" 下達 javac test.java java test < testData 除了第一列的資料有讀進之外,其餘都會變成0.... 請問這是怎麼一回事呢? 找了老半天的資料找不出所以然來. 請java版的前輩們指點指點! p.s. 我知道可以用string的方式讀入一整行再做切割, 但我更想知道上面那樣作法的問題在哪. 所以還麻煩各位幫幫忙了! -- 諸葛亮 :「魯肅,近來可好?」 魯肅 :「安然無恙。」 諸葛亮 :「魯夫人呢?」 魯肅 :「他應該在偉大的航道上。 」 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.233.40.239

04/20 21:20, , 1F
似乎是 \r 問題? 還有不是都變成 0 ,而是讀到非數字
04/20 21:20, 1F

04/20 21:30, , 2F
Orz..我這邊除了第一筆全都是0
04/20 21:30, 2F

04/20 21:32, , 3F
有時在第一行資料之後會全為0,有時候第一行讀完之後就會掛掉
04/20 21:32, 3F

04/20 21:41, , 4F
掛掉的部份已經修正,其餘用E附加入內文
04/20 21:41, 4F
目前找到了可行的方法...code如下: Scanner input = new Scanner(System.in).useDelimiter(", |\n|\r"); int[][] grid = new int[9][9]; for (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { if(input.hasNextInt()) grid[i][j] = input.nextInt(); System.out.println("TEST!!!!"+" i:"+i+" j:"+j+" grid["+i+"]"+"["+j+"] = "+grid[i][j]); } if(input.hasNextLine()) input.nextLine(); } 另外想請問: \r:是回到當前行的行首 \n:換行後回到剛行的行首 上面這兩個應該沒錯 那位什麼我還要在Delimiter裡面多加\r呢? 當我讀完第一行的資料 5, 3, 0, 0, 7, 0, 0, 0, 0 6, 0, 0, 1, 9, 5, 0, 0, 0 他不是應該會自動換行到第二行的行首嗎?(以\n作結) 還是說第一行的尾巴並非是以\n作為結束而是以\r? ※ 編輯: YCK 來自: 118.233.40.239 (04/20 21:49)

04/20 22:01, , 5F
google: "carriage return" & "line feed"
04/20 22:01, 5F
謝謝tkcn的提示! 我找到一個看似有用的參考資料 http://tinyurl.com/y2sw3l8 原網址: http://www.maxi-pedia.com/Line+termination+line+feed+versus+carriage+return+0d0a 供以後看到這篇文章的人參考! ※ 編輯: YCK 來自: 118.233.40.239 (04/20 22:11)
文章代碼(AID): #1BpQX1p7 (java)
文章代碼(AID): #1BpQX1p7 (java)