我知道这有类似的线程,但大多数只涉及忽略空格。
我必须使用一些写得不好的数据表来编写应用程序,因此我经常需要比较这样的事情:包装,包装,包装,包装,包装
这些都应该被认为是平等的,因为它们都是一个包。但是,没有一个制作这些数据表的人彼此沟通,所以现在我可以处理它。
如何在忽略括号,空格,'s'字符的同时比较字符串,并确保在比较之前所有内容都是小写的?
我现在所拥有的只是:
private boolean sCompare(String s1, String s2){ return s1.equalsIgnoreCase(s2)}
显然它并不多,除了直接比较两个小写字符串之外什么都不做,但我不确定正确的方法来获得我需要的结果。
对于上面的示例,新的比较函数应返回true,而在比较以下内容时则返回false:Pack(s)和Case(s),Packs和Case(s)等。
编辑 使用最佳答案的帮助,我创建了一个适合我需要的功能
private boolean sCompare(String s1, String s2){ String rx = "[\\se(s)|s$]"; return (s1.toLowerCase().replaceAll(rx,"")).equals(s2.toLowerCase().replaceAll(rx,""));}
紫衣仙女
LEATH
相关分类