Re: [問題] 二維陣列複製貼上輸入的問題

看板java作者 (痞子軍團團長)時間11年前 (2014/05/09 08:48), 11年前編輯推噓2(206)
留言8則, 6人參與, 最新討論串2/3 (看更多)
※ 引述《onejiko (己摳)》之銘言: : 我想問當我一開始輸入3 : 再輸入三串數列都可以正常OUTPUT : 1 2 3 4 5 6 : 2 3 4 5 6 1 : 3 4 5 6 1 2 : 但如果我是用複製貼上那三行數列的話 : 它卻不能完全抓取到三串數列這是怎麼回事? 你的問題應該簡化為「複製貼上無法取得三個『字串』」 也就是說 : int i; : int num; : String str1; : System.out.println("請輸入n"); : Scanner c = new Scanner(System.in); : num = c.nextInt(); (上面都是雜訊,直接 int num = 3; 來測你的程式不是更快樂) : String array[][] = new String[num][6]; : for(int x=0;x<num;x++){ : System.out.println(x); : Scanner scanner = new Scanner(System.in); : str1 = scanner.nextLine(); 你在這邊 System.out.println(str1); 就會覺得怪怪的了 連 str1 都不對了,後頭還能期望什麼 T__T : String str2[]=str1.split(" "); : i=0; : for(int y=0 ; y<6 ; y++ ){ : array[x][y] = str2[i]; : i++; : } : } 也就是說,你的「真正」的問題,其實可以簡化成 下面的程式碼,為什麼直接複製貼上 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 結果會跟每次一行一行手動輸入不一樣 int num = 3; //TODO 改成 System.in 輸入 for (int x = 0; x < num; x++) { Scanner scanner = new Scanner(System.in); System.out.println(scanner.nextLine()); } 加上良好的縮排,理論上你就不會害到 cyclone350 Orz → cyclone350:is it? http://ppt.cc/wJSc 基本上 cyclone350 的回答... 我個人認為非常詭異 ==" 因為如果複製貼上到 Notepad 之類的 editor / textarea 他還是會換行,不是嗎? 那表示當你複製的時候,一定有幫你補換行符號 不然 editor / textarea 怎麼知道要換行 Orz 再加上 Scanner.nextList() 的程式碼 String result = findWithinHorizon(linePattern, 0); 回頭追一下 linePattern 怎麼來的 基本上是這個 pattern "\r\n|[\n\r\u2028\u2029\u0085]" \r 跟 \n(那三個 \u 不確定是啥字 XD)都有進去了 所以說... 這不科學! [蓋章] 結果就是,你的 Scanner 宣告放錯地方了 至於為什麼,我想你要自己找出答案 [指] 最後,我覺得一切循其本 能從 source code 或是標準文件作為 reference 是比較好的 我昨天才遇到一個五年前沒問題、官方文件也這樣教 結果三年前的 source code 就告訴你「強烈建議不要這樣作」的哏 [淚目] ==== 麻煩 cyclone350 繳交 500 字檢討報告,不然就讓你上版標! [完全誤] -- 錢鍾書: 說出來的話 http://www.psmonkey.org 比不上不說出來的話 Java 版 cookcomic 版 只影射著說不出來的話 and more...... -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.61.165.57 ※ 文章網址: http://www.ptt.cc/bbs/java/M.1399596507.A.277.html

05/09 09:57, , 1F
又是這種吃buffer的問題啊www
05/09 09:57, 1F

05/09 10:02, , 2F
吃 buffer??? 不懂 @_@
05/09 10:02, 2F

05/09 10:17, , 3F
板主好邪惡 (指板標)
05/09 10:17, 3F

05/09 11:26, , 4F
buffer有分399還是799的嗎
05/09 11:26, 4F

05/09 11:56, , 5F
我只知道 buffet 有分,我還真不知道 buffer 也有分 Orz
05/09 11:56, 5F

05/09 18:53, , 6F
天啊 ~ 我根據他的問題google關鍵字。當初也覺得有點
05/09 18:53, 6F

05/09 18:56, , 7F
怪怪的,所以加個問號代表沒有查證且不確定 QQ。
05/09 18:56, 7F

05/09 21:38, , 8F
\u是UTF8編碼轉ASCII編碼的樣子 http://ppt.cc/PQVz
05/09 21:38, 8F
//修正 typo,nextList() → nextLine() ※ 編輯: PsMonkey (114.43.104.99), 05/10/2014 08:13:15
文章代碼(AID): #1JR2NR9t (java)
文章代碼(AID): #1JR2NR9t (java)