簡體   English   中英

不匹配時Java replaceAll方法返回null

[英]Java replaceAll method return null when no match

我有一些現有的 Java 代碼

Pattern regex = Pattern.compile(regexStr, Pattern.CASE_INSENSITIVE);        
Matcher m = regex.matcher(value);
String replace= m.replaceAll(regexReplaceStr);

這是我的項目中的硬編碼。我無法更改它。 我只能通過配置設置值regexStrregexReplaceStr 我需要做的是

  • 如果匹配,則返回原始字符串
  • 如果不匹配,則返回一個空字符串

在這種情況下,我的字符串regexStrregexReplaceStr應該是什么?

例如,我有

regexStr = "^[^_]+_(.*)$"
regexReplace = "$0"

所以現在如果輸入字符串是AA_BBB ,返回的值是AA_BBB 現在,如果輸入字符串是AABBB ,我希望它返回一個空字符串 如何才能做到這一點?

首先,代碼不清楚。 沒有提到“價值”...

Matcher m = regex.matcher(value);
                           ^ ^

並且也沒有關於這段代碼的上下文。
是否用作方法? 用戶輸入?

您可以在代碼后添加:

if (replace == null) {
    replace = "";
}

然后它將用空字符串替換 null。

但是我做了和你一樣的代碼,但它從來沒有返回空......

暫無
暫無

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

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