gpt4 book ai didi

java - 如何打印不匹配的字符串

转载 作者:行者123 更新时间:2023-11-29 04:43:37 26 4
gpt4 key购买 nike

我想打印不匹配的字符串,但结果为空。

public class Replacement  {
public static void main(String[] ignored) {

String str = "aaa bbb ddd";
Map<String, String> mapping = new HashMap<>();
mapping.put("aaa", "hello");
mapping.put("bbb", "java");
mapping.put("ccc", "world");

Pattern pattern = Pattern.compile("([a-zA-Z_]+)"); // pattern compiling
Matcher matcher = pattern.matcher(str); // pattern matching

StringBuffer sb = new StringBuffer();
while(matcher.find()) { // while matcher found
String replace = mapping.get(matcher.group());
matcher.appendReplacement(sb, replace + " ");
}
matcher.appendTail(sb);

System.out.println(sb);
}
}

结果:

hello java null // I expected "hello java dddd

我需要放 while(!matcher.find())

最佳答案

为了实现你想要的,你需要检查替换是否存在,如果替换不存在则你需要附加 key 本身

     String replace = mapping.get(matcher.group());
if(replace==null) {
replace = matcher.group();
}
matcher.appendReplacement(sb, replace + " ");

希望这对您有所帮助。

关于java - 如何打印不匹配的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38216341/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com