use*_*522 7 java comparison wildcard
我正在运行一个比较程序,并且它在一分钟内进行直接的"字符串到字符串"比较,如果它们是完全匹配,则输出它们是匹配的.
好吧,我希望增加一个允许"相似性"的附加功能......
例如:
String em1 = "52494646";
String em2 = "52400646";
if (em1.equals(em2)){
output.writeUTF(dir + filenames[i]);
}
Run Code Online (Sandbox Code Playgroud)
这是代码的一小部分.我喜欢它,以便它跳过"00"并仍然将其识别为"几乎"相同的数字并仍然输出它.
我想它会看起来像什么,String em2 = "524"+ ## +"646"但这显然只是一个概念
有没有人知道是否有办法拥有这种"通配符"(我从uni SQL中选择的一个术语),或者是否有另一种方法来做这种相似类型的交易.
谢谢 :)
Joa*_*uer 14
您可以使用正则表达式:
if (em1.matches("524[0-9]{2}646")) {
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
您可以使用正则表达式轻松解决它:
if (em1.matches("524..646"))
Run Code Online (Sandbox Code Playgroud)
例如.
(这.是一个代表任何字符的通配符.\\d如果您想将通配符限制为数字,可以替换它.)
这是一个更通用的变体,它与任何字符匹配"0":
String em1 = "52494646";
String em2 = "52400646";
if (em1.matches(em2.replaceAll("0", "\\\\d"))){
System.out.println("Matches");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
49861 次 |
| 最近记录: |