假设我有字符串值
String strValue1 = "This is the 3TB value";
String strValue2 = "3TB is the value";
String strValue3 = "The value is 3TB";
当用户搜索3TB*
时,它应该与strValue2匹配,就像用户搜索*3TB*
时那样匹配strValue1而对于*3TB
它应匹配strValue3
我尝试了很多例子,但没有运气。是否有任何通配符搜索字符串?我无法使用任何外部库
答案 0 :(得分:1)
您可能正在寻找Regular Expressions。
既然你说你不能使用外部图书馆,我认为这可能是作业,所以在这种情况下我不会直接回答如何使用它们。
答案 1 :(得分:1)
您可以使用以下方法检查3TB*
案例:
str.startsWith("3TB")
其中str
是您要检查匹配的字符串。
您可以使用以下方法检查*3TB*
案例:
str.contains("3TB")
答案 2 :(得分:0)
如果您能够在搜索中用*
替换通配符.+
。以下片段可能是一个起点。
String[] strings = {"This is the 3TB value", "3TB is the value",
"The value is 3TB"};
String[] pattern = {"3TB.+", ".+3TB.+", ".+3TB"};
for (String s : strings) {
for (String p : pattern) {
if (s.matches(p)) {
System.out.printf("pattern: %-7s matches: %s%n", p, s);
}
}
}
输出
pattern: .+3TB.+ matches: This is the 3TB value
pattern: 3TB.+ matches: 3TB is the value
pattern: .+3TB matches: The value is 3TB