java模糊匹配代码
时间: 2023-07-26 22:03:34 浏览: 53
Java 中模糊匹配的实现可以使用正则表达式,其中可以使用通配符来匹配任意字符,例如使用 `.*` 匹配任意数量的任意字符。
下面是一个示例代码,实现了模糊匹配两个字符串是否相似:
```java
public static boolean fuzzyMatch(String str1, String str2) {
// 将字符串中的空格和特殊字符去掉,只留下字母和数字
String pattern1 = str1.replaceAll("[^a-zA-Z0-9]", "");
String pattern2 = str2.replaceAll("[^a-zA-Z0-9]", "");
// 将字母大小写都转换为小写
pattern1 = pattern1.toLowerCase();
pattern2 = pattern2.toLowerCase();
// 使用正则表达式进行模糊匹配
String regex = ".*" + pattern1 + ".*";
return pattern2.matches(regex);
}
```
在该示例代码中,首先将两个字符串中的空格和特殊字符去掉,只留下字母和数字。然后将字母大小写都转换为小写,再使用正则表达式进行模糊匹配。其中 `.*` 表示匹配任意数量的任意字符,`pattern1` 表示要匹配的模式。
你可以根据自己的需求修改该示例代码。
相关问题
java中文商品名称模糊匹配代码
这里提供一个简单的 Java 代码示例,用于实现商品名称的模糊匹配:
```java
public class ProductMatcher {
public static boolean match(String productName, String keyword) {
// 将商品名称和关键词都转成小写,方便比较
String name = productName.toLowerCase();
String key = keyword.toLowerCase();
// 模糊匹配逻辑:只要关键词中的每个字符都在商品名称中出现过即可
for (int i = 0; i < key.length(); i++) {
if (name.indexOf(key.charAt(i)) == -1) {
return false;
}
}
return true;
}
public static void main(String[] args) {
String productName = "苹果手机";
String keyword = "苹果";
if (match(productName, keyword)) {
System.out.println("商品名称包含关键词");
} else {
System.out.println("商品名称不包含关键词");
}
}
}
```
上面的代码中,`match` 方法接收两个字符串参数:商品名称和关键词。方法内部使用了一个简单的逻辑判断来实现模糊匹配:只要关键词中的每个字符都在商品名称中出现过即可。如果匹配成功,方法返回 `true`,否则返回 `false`。
在 `main` 方法中,我们调用 `match` 方法来判断商品名称是否包含关键词,如果包含则输出提示信息。这里的关键词是硬编码在代码中的,实际应用中可以通过用户输入或从数据库中获取来动态设置关键词。
java 模糊搜索代码
好的,以下是一段简单的基于Java的模糊搜索代码:
```
import java.util.ArrayList;
import java.util.List;
public class FuzzySearch {
public static List<String> search(String query, List<String> data) {
List<String> results = new ArrayList<>();
for (String s : data) {
if (s.toLowerCase().contains(query.toLowerCase())) {
results.add(s);
}
}
return results;
}
public static void main(String[] args) {
List<String> data = new ArrayList<>();
data.add("Apple");
data.add("Banana");
data.add("Cherry");
data.add("Dragon fruit");
data.add("Elderberry");
List<String> results = search("erry", data);
System.out.println(results); // Output: [Cherry, Elderberry]
}
}
```
该代码通过传入一个查询字符串和一个数据列表,返回一个包含所有匹配该查询字符串的数据的列表。它会忽略大小写,只要数据中包含查询字符串,即视为匹配成功。您可以根据需要对其进行修改和定制。