作者PsMonkey (痞子軍團團長)
看板java
標題Re: [問題] 二維陣列複製貼上輸入的問題
時間Fri May 9 08:48:24 2014
※ 引述《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
→ danny8376:又是這種吃buffer的問題啊www 05/09 09:57
→ PsMonkey:吃 buffer??? 不懂 @_@ 05/09 10:02
→ pcyu16:板主好邪惡 (指板標) 05/09 10:17
→ swpoker:buffer有分399還是799的嗎 05/09 11:26
→ PsMonkey:我只知道 buffet 有分,我還真不知道 buffer 也有分 Orz 05/09 11:56
推 cyclone350:天啊 ~ 我根據他的問題google關鍵字。當初也覺得有點 05/09 18:53
→ cyclone350:怪怪的,所以加個問號代表沒有查證且不確定 QQ。 05/09 18:56
//修正 typo,nextList() → nextLine()
※ 編輯: PsMonkey (114.43.104.99), 05/10/2014 08:13:15