
public static void main(String[] args) {
File file = new File("D:\\1.xlsx");
XSSFWorkbook xssfWorkbook = new XSSFWorkbook(new FileInputStream(file));
Sheet sheet = xssfWorkbook.getSheetAt(tabIndex);
List list = new ArrayList<>();
HashMap map = new HashMap();
for (int i = 0; i <= 899; i++) {
cell1.setCellType(CellType.STRING);
String cellValue0 = cell1.getStringCellValue();
for (int i = 0; i < list.size()-1; i++) {
for (int j = i+1; j < list.size(); j++) {
float levenshtein = Levenshtein(a, b);
if (levenshtein >= 0.80) {
System.out.println(a+"<--->"+b+","+levenshtein+"\r\n");
System.out.println(map.size());
public static float Levenshtein(String a, String b) {
if (a == null && b == null) {
if (a == null || b == null) {
int editDistance = editDis(a, b);
return 1 - ((float) editDistance / Math.max(a.length(), b.length()));
private static int editDis(String a, String b) {
int[][] v = new int[aLen + 1][bLen + 1];
for (int i = 0; i <= aLen; ++i) {
for (int j = 0; j <= bLen; ++j) {
} else if (a.charAt(i - 1) == b.charAt(j - 1)) {
v[i][j] = v[i - 1][j - 1];
v[i][j] = 1 + Math.min(v[i - 1][j - 1], Math.min(v[i][j - 1], v[i - 1][j]));
