public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextLine()) { // 注意 while 处理多个 case
String a = in.nextLine().toLowerCase(Locale.ROOT);
String b = in.nextLine().toLowerCase(Locale.ROOT);
//把a中2个以上的*变成1个*
String res=a.replaceAll("[*]{2,}","*");
//把*替换成通配符[a-z0-9]{0,}
res=res.replaceAll("[]*]","[0-9a-z]{0,}");
//把?替换成通配符一个的[0-9a-z]{1}
res=res.replaceAll("[?]","[0-9a-z]{1}");
System.out.println(b.matches(res));
}
}
HJ71 字符串通配符(java详解)
最新推荐文章于 2024-10-30 18:07:32 发布
该代码示例展示了一个Java程序,它使用Scanner读取用户输入的两行字符串a和b。程序将字符串a中的连续两个或更多星号(*)替换为单个星号,并将星号和问号转换为相应的正则表达式通配符,然后检查字符串b是否匹配处理后的模式。这涉及到了字符串的正则操作和模式匹配。
摘要由CSDN通过智能技术生成