gpt4 book ai didi

java - 用正则表达式比较两个字符串的替代方法是什么

转载 作者:行者123 更新时间:2023-11-29 06:48:24 24 4
gpt4 key购买 nike

我想比较两个字符串,它们之间有不同的分隔符。

例子

String s1 = "ZZ E5 - Pirates of carribean";
String s2 = "ZZ E5 : Pirates of carribean";

我想比较两个字符串是否相等。

我试过在 Java 中使用正则表达式来解决这个问题,

        String pattern = "(.*)[:-](.*)";
// Create a Pattern object
Pattern r = Pattern.compile(pattern);

// Now create matcher object.
Matcher m = r.matcher(s1);
Matcher m1 = r.matcher(s2);

if (m1.find()&&m.find()) {
System.out.println("Found value: " + m.group(1));
System.out.println("Found value: " + m.group(2));
System.out.println("Found value: " + m1.group(1));
System.out.println("Found value: " + m1.group(2));

System.out.println(m.group(1).contentEquals(m1.group(1)));
System.out.println(m.group(2).contentEquals(m1.group(2)));
} else {
System.out.println("NO MATCH");
}

这是一个好方法还是我们可以通过其他一些有效的方式来做到这一点?

最佳答案

您可以将两个字符串都转换为规范形式,方法是选择其中一个分隔符作为规范,例如:

String s1 = "ZZ E5 - Pirates of carribean";
String s2 = "ZZ E5 : Pirates of carribean";

String canonicalS1 = s1.replaceAll("-", ":");
String canonicalS2 = s2.replaceAll("-", ":");

System.out.println(canonicalS1.equals(canonicalS2));

输出

true

请注意,此解决方案要求定界符只出现一次,或者就此而言,定界符可以互换。

关于java - 用正则表达式比较两个字符串的替代方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57998906/

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