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

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

如何讓我的刪除功能刪除包含我輸入的內容的整行,而不是我輸入的內容?

如何讓我的刪除功能刪除包含我輸入的內容的整行,而不是我輸入的內容?

蕭十郎 2023-05-24 14:57:41
我有一個從文本文件中添加、搜索和刪除行的功能。搜索與大小寫無關,并且有一個 .contains 允許它在少于整行的情況下工作。刪除功能只刪除完全匹配。我正在訪問一個外部 .txt 文件,該文件保存所做的更改。我嘗試復制我的搜索代碼,但無法產生相同的結果。我還想完全刪除該行,以便在我不刪除最后一個條目時讓我的表格保持干凈,但這不太重要。    System.out.println("What would you like to delete");    Scanner deleteScanner = new Scanner(System.in);    String deleteInput = deleteScanner.nextLine();    try{          File file = new File("contacts.txt");          File temp = File.createTempFile("file", ".txt",           file.getParentFile());          BufferedReader reader = new BufferedReader(new           InputStreamReader(new FileInputStream(file)));          PrintWriter writer = new PrintWriter(new           OutputStreamWriter(new FileOutputStream(temp)));         for (String line; (line = reader.readLine()) != null;) {            line = line.replace(deleteInput, "");            writer.println(line);        }  reader.close();  writer.close();  file.delete();  temp.renameTo(file);    } catch (IOException e){         e.printStackTrace();    }我覺得 .contains 應該可以工作,但我無法使其按預期運行。
查看完整描述

1 回答

?
鴻蒙傳說

TA貢獻1865條經驗 獲得超7個贊

您可以使用以下方法更輕松地獲取所有文件行:


List<String> lines = Files.readAllLines(Paths.get(path), Charset.defaultCharset());

之后,您可以簡單地遍歷列表lines并刪除整行,如果它包含deleteInput:


for (String line : lines) {

    if (line.contains(deleteInput)) {

        lines.remove(line);

    }

}

如果需要toLowerCase()在每次檢查之前找到可以忽略占用的案例。


查看完整回答
反對 回復 2023-05-24
  • 1 回答
  • 0 關注
  • 136 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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