簡體   English   中英

為什么java String.replaceAll正則表達式刪除它不應該的字符串的一部分?

[英]Why java String.replaceAll regex removes part of string which it shouldn't?

我想使用正則表達式從輸入字符串中刪除不在范圍內的所有字符。 這是我的代碼:

System.out.print("Input: ");
Scanner scan = new Scanner(System.in);
String input = scan.next();
scan.close();
String formattedInput = input.replaceAll("[^a-zA-Z]", "");
System.out.println(formattedInput);

它是如何工作的:

input: test,test test
testtest

為什么它刪除了第三次測試? 我希望他在這種特殊情況下只刪除“,”和“”。

這是因為你使用掃描儀並調用scan.next只接受test,test

調試這些類型的一種很好的方法是在調用replaceAll的語句之前執行System.out.println(input)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM