我正在运行一个比较程序,此时它会进行直接的“字符串到字符串”比较,如果它们完全匹配,则输出它们是匹配的。
好吧,我希望添加一个允许“相似性”的附加功能......
例如:
String em1 = "52494646";
String em2 = "52400646";
if (em1.equals(em2)){
output.writeUTF(dir + filenames[i]);
}
这是代码片段。我希望它能够跳过“00”并仍然将其识别为“几乎”相同的数字并仍然输出它。
我想它会看起来像String em2 = "524"+ ## +"646"
但这显然只是一个概念
有谁知道是否有一种方法可以拥有这种“通配符”(我从 uni SQL 中学到的一个术语),或者是否有另一种方法可以进行这种相似类型的处理。
谢谢 :)
您可以使用正则表达式:
if (em1.matches("524[0-9]{2}646")) {
// do stuff
}
对于 Java 特定文档,请参阅the Pattern class https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/regex/Pattern.html。对于正则表达式的某些使用(例如上面的示例),有快捷方法String https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html: matches() https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html#matches(java.lang.String), replaceAll() https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html#replaceAll(java.lang.String,java.lang.String)/replaceFirst() https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html#replaceFirst(java.lang.String,java.lang.String) and split() https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html#split(java.lang.String,int).
正则表达式.info http://www.regular-expressions.info/一般来说,有关于正则表达式的良好文档。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)