亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

當使用 java.util.Scanner 從文件中讀取字符串并使用換行符作為分隔符時

當使用 java.util.Scanner 從文件中讀取字符串并使用換行符作為分隔符時

喵喔喔 2023-04-13 17:10:48
我嘗試使用java.util.Scanner. 當我嘗試用作\n定界符時,當我嘗試向它們添加更多文本時,生成的字符串會做出奇怪的反應。我有一個名為“test.txt”的文件并嘗試從中讀取數據。然后我想向每個字符串添加更多文本,類似于打印方式Hello World!:String helloWorld = "Hello "+"World!"; System.out.println(helloWorld);.我嘗試將數據與 結合起來+,我嘗試過+=,我嘗試過String.concat(),這以前對我有用,而且通常仍然有效。我還嘗試使用不同的定界符,或者根本不使用定界符,這兩種方法都按我的預期工作,但我需要在換行符處分隔字符串。最小可重現示例的文件test.txt包含以下文本(每行末尾有一個空格):零:一:二:三:void minimalReproducibleExample() throws Exception {  //May throw an exception if the test.txt file can't be found    String[] data = new String[4];    java.io.File file = new java.io.File("test.txt");    java.util.Scanner scanner = new java.util.Scanner(file).useDelimiter("\n");    for (int i=0;i<4;i++) {        data[i] = scanner.next();     //read the next line        data[i] += i;                 //add a number at the end of the String        System.out.println(data[i]);  //print the String with the number    }    scanner.close();}我希望這段代碼打印出這些行:零:0一:1二:2三:3我得到這個輸出:0ero:1ne:2wo:三: 3\n為什么在用作定界符時沒有得到預期的輸出?
查看完整描述

2 回答

?
天涯盡頭無女友

TA貢獻1831條經驗 獲得超9個贊

test.txt有可能使用 Windows行尾表示?\r\n,這導致回車符\rString在讀取后仍然存在。

確保test.txt使用\nas line delimtier 或\r\nScanner.useDelimiter().


查看完整回答
反對 回復 2023-04-13
?
UYOU

TA貢獻1878條經驗 獲得超4個贊

問題很可能是錯誤的定界符。如果您使用 Windows 10,新的行分隔符是\r\n。

只是為了獨立于平臺使用System.getProperty("line.separator")而不是硬編碼\n。


查看完整回答
反對 回復 2023-04-13
  • 2 回答
  • 0 關注
  • 224 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號