Hutool 字符串相似度
时间: 2023-08-10 12:06:06 浏览: 520
Hutool 提供了多种字符串相似度算法,可用于计算两个字符串之间的相似度。其中比较常用的有 Jaro-Winkler 算法和 Levenshtein 算法。
Jaro-Winkler 算法基于 Jaro 算法,但在计算时给予相同前缀的字符更高的权重。它返回 0 到 1 之间的值,其中 1 表示完全匹配。
Levenshtein 算法通过计算将一个字符串转换为另一个字符串所需的最少编辑次数来计算它们之间的距离。它返回 0 到 1 之间的值,其中 1 表示完全匹配。
使用 Hutool 中的 StrUtil 类即可方便地计算字符串相似度,例如:
```
String s1 = "hello";
String s2 = "hella";
double sim = StrUtil.similar(s1, s2);
System.out.println(sim);
```
输出结果为 0.8,表示两个字符串的相似度为 80%。
相关问题
hutool 获取两个字符串的匹配度
Hutool提供了StrUtil.similarity(String str1, String str2)方法来计算两个字符串的相似度,返回值为0到1之间的一个浮点数,表示两个字符串的相似程度。
示例代码:
```java
import cn.hutool.core.util.StrUtil;
public class Test {
public static void main(String[] args) {
String str1 = "hello world";
String str2 = "hello wordl";
double similarity = StrUtil.similarity(str1, str2);
System.out.println("相似度为:" + similarity);
}
}
```
输出结果:
```
相似度为:0.9090909090909091
```
说明这两个字符串的相似度很高。
hutool5.8.16 匹配字符串忽略空格
在Hutool 5.8.16中,可以使用StringUtils类中的方法来忽略空格进行字符串匹配。具体方法如下:
1. 判断两个字符串是否相等(忽略空格):
```java
String str1 = "hello world";
String str2 = "hello world";
boolean isEqual = StringUtils.equalsIgnoreBlank(str1, str2);
```
2. 获取两个字符串的相似度(忽略空格):
```java
String str1 = "hello world";
String str2 = "hello world";
double similarity = StringUtils.similarityIgnoreBlank(str1, str2);
```
在以上两个方法中,StringUtils.equalsIgnoreBlank()和StringUtils.similarityIgnoreBlank()都会忽略字符串中的空格,并将其作为相同的字符处理。
阅读全文