Contents
You đang tìm kiếm từ khóa Hàm so sánh chuỗi java được Update vào lúc : 2022-11-04 15:04:00 . Với phương châm chia sẻ Kinh Nghiệm về trong nội dung bài viết một cách Chi Tiết 2022. Nếu sau khi đọc nội dung bài viết vẫn ko hiểu thì hoàn toàn có thể lại phản hồi ở cuối bài để Ad lý giải và hướng dẫn lại nha.
Vâng, có nhiều thuật toán được ghi chép tốt như:
Hoặc bạn hoàn toàn có thể kiểm tra điều này
Kiểm tra những dự án công trình bất Động sản này:
Cách phổ cập của tính toán độ tương tự giữa hai chuỗi theo phong cách 0% -100% , như được sử dụng trong nhiều thư viện, là để đo mức độ (trong %) bạn sẽ phải thay đổi chuỗi dài hơn thế nữa để biến nó thành chuỗi ngắn lại:
/**
* Calculates the similarity (a number within 0 and 1) between two strings.
*/
public static double similarity(String s1, String s2)
String longer = s1, shorter = s2;
if (s1.length()
Hàm editDistance() ở trên dự kiến sẽ tính khoảng chừng cách sửa đổi giữa hai chuỗi. Có một số trong những triển khai cho bước này, từng bước hoàn toàn có thể phù phù thích hợp với một ngữ cảnh rõ ràng tốt hơn. Phổ biến nhất là Thuật toán khoảng chừng cách Levenshtein và chúng tôi sẽ sử dụng trong ví dụ của chúng tôi dưới đây (riêng với những chuỗi rất rộng, những thuật toán khác hoàn toàn có thể hoạt động và sinh hoạt giải trí tốt hơn).
Đây là hai tùy chọn để tính khoảng chừng cách sửa đổi:
Xem bản demo trực tuyến tại đây.
public class StringSimilarity
/**
* Calculates the similarity (a number within 0 and 1) between two strings.
*/
public static double similarity(String s1, String s2)
String longer = s1, shorter = s2;
if (s1.length() 0)
int newValue = costs[j – 1];
if (s1.charAt(i – 1) != s2.charAt(j – 1))
newValue = Math.min(Math.min(newValue, lastValue),
costs[j]) + 1;
costs[j – 1] = lastValue;
lastValue = newValue;
if (i > 0)
costs[s2.length()] = lastValue;
return costs[s2.length()];
}
public static void printSimilarity(String s, String t)
System.out.println(String.format(
“%.3f is the similarity between “%s” and “%s””, similarity(s, t), s, t));
public static void main(String[] args)
printSimilarity(“”, “”);
printSimilarity(“1234567890”, “1”);
printSimilarity(“1234567890”, “123”);
printSimilarity(“1234567890”, “1234567”);
printSimilarity(“1234567890”, “1234567890”);
printSimilarity(“1234567890”, “1234567980”);
printSimilarity(“47/2010”, “472010”);
printSimilarity(“47/2010”, “472011”);
printSimilarity(“47/2010”, “AB.CDEF”);
printSimilarity(“47/2010”, “4B.CDEFG”);
printSimilarity(“47/2010”, “AB.CDEFG”);
printSimilarity(“The quick fox jumped”, “The fox jumped”);
printSimilarity(“The quick fox jumped”, “The fox”);
printSimilarity(“kitten”, “sitting”);
}
Đầu ra:
1.000 is the similarity between “” and “”
0.100 is the similarity between “1234567890” and “1”
0.300 is the similarity between “1234567890” and “123”
0.700 is the similarity between “1234567890” and “1234567”
1.000 is the similarity between “1234567890” and “1234567890”
0.800 is the similarity between “1234567890” and “1234567980”
0.857 is the similarity between “47/2010” and “472010”
0.714 is the similarity between “47/2010” and “472011”
0.000 is the similarity between “47/2010” and “AB.CDEF”
0.125 is the similarity between “47/2010” and “4B.CDEFG”
0.000 is the similarity between “47/2010” and “AB.CDEFG”
0.700 is the similarity between “The quick fox jumped” and “The fox jumped”
0.350 is the similarity between “The quick fox jumped” and “The fox”
0.571 is the similarity between “kitten” and “sitting”
Tôi đã dịch thuật toán khoảng chừng cách Levenshtein sang JavaScript:
String.prototype.LevenshteinDistance = function (s2) {
var array = new Array(this.length + 1);
for (var i = 0; i
Bạn hoàn toàn có thể sử dụng khoảng chừng cách Levenshtein để tính chênh lệch giữa hai chuỗi. ://en.wikipedia.org/wiki/Levenshtein_distance
Thực sự có thật nhiều giải pháp tương tự chuỗi ngoài kia:
Bạn hoàn toàn có thể tìm thấy lời lý giải và Java thực thi những điều này tại đây: ://github/tdebatty/Java-opes-similarity
Bạn hoàn toàn có thể đạt được điều này bằng phương pháp sử dụng thư viện Apache commons Java . Hãy xem hai hiệu suất cao bên trong nó:
[.__.] – getLevenshteinDistance
[.__.] – getFuzzyDistance
Cảm ơn người vấn đáp thứ nhất, tôi nghĩ có 2 phép tính computeEditDistance (s1, s2). Do tiêu pha thời hạn cao của nó, đã quyết định hành động cải tổ hiệu suất của mã. Vì thế:
public class LevenshteinDistance
public static int computeEditDistance(String s1, String s2)
s1 = s1.toLowerCase();
s2 = s2.toLowerCase();
int[] costs = new int[s2.length() + 1];
for (int i = 0; i 0)
int newValue = costs[j – 1];
if (s1.charAt(i – 1) != s2.charAt(j – 1))
newValue = Math.min(Math.min(newValue, lastValue),
costs[j]) + 1;
costs[j – 1] = lastValue;
lastValue = newValue;
if (i > 0)
costs[s2.length()] = lastValue;
}
return costs[s2.length()];
}
public static void printDistance(String s1, String s2)
double similarityOfStrings = 0.0;
int editDistance = 0;
if (s1.length() ” + s2 + “: ” +
// editDistance + ” (” + similarityOfStrings + “)”);
System.out.println(editDistance + ” (” + similarityOfStrings + “)”);
public static void main(String[] args) {
printDistance(“”, “”);
printDistance(“1234567890”, “1”);
printDistance(“1234567890”, “12”);
printDistance(“1234567890”, “123”);
printDistance(“1234567890”, “1234”);
printDistance(“1234567890”, “12345”);
printDistance(“1234567890”, “123456”);
printDistance(“1234567890”, “1234567”);
printDistance(“1234567890”, “12345678”);
printDistance(“1234567890”, “123456789”);
printDistance(“1234567890”, “1234567890”);
printDistance(“1234567890”, “1234567980”);
printDistance(“47/2010”, “472010”);
printDistance(“47/2010”, “472011”);
printDistance(“47/2010”, “AB.CDEF”);
printDistance(“47/2010”, “4B.CDEFG”);
printDistance(“47/2010”, “AB.CDEFG”);
printDistance(“The quick fox jumped”, “The fox jumped”);
printDistance(“The quick fox jumped”, “The fox”);
printDistance(“The quick fox jumped”,
“The quick fox jumped off the balcany”);
printDistance(“kitten”, “sitting”);
printDistance(“rosettacode”, “raisethysword”);
printDistance(new StringBuilder(“rosettacode”).reverse().toString(),
new StringBuilder(“raisethysword”).reverse().toString());
for (int i = 1; i
Về mặt lý thuyết, bạn hoàn toàn có thể so sánh sửa đổi khoảng chừng cách .
Điều này thường được thực thi bằng phương pháp sử dụng một sửa đổi khoảng chừng cách . Tìm kiếm “sửa đổi khoảng chừng cách Java” sẽ xuất hiện một số trong những thư viện, như cái này .
Âm thanh in như một Trình tìm đạo văn với tôi nếu chuỗi của bạn trở thành tài liệu. Có lẽ tìm kiếm với thuật ngữ này sẽ bật lên một chiếc gì đó tốt.
“Lập trình trí tuệ tập thể” có một chương về việc xác lập xem hai tài liệu có giống nhau không. Mã này bằng Python, nhưng nó sạch và dễ chuyển.
://.youtube/watch?v=C1p1DMBb3X4
Bạn vừa đọc Post Với Một số hướng dẫn một cách rõ ràng hơn về Clip Hàm so sánh chuỗi java tiên tiến và phát triển nhất
Heros đang tìm một số trong những ShareLink Download Hàm so sánh chuỗi java Free.
Nếu sau khi đọc nội dung bài viết Hàm so sánh chuỗi java vẫn chưa hiểu thì hoàn toàn có thể lại phản hồi ở cuối bài để Mình lý giải và hướng dẫn lại nha
#Hàm #sánh #chuỗi #java
Tra Cứu Mã Số Thuế MST KHƯƠNG VĂN THUẤN Của Ai, Công Ty Doanh Nghiệp…
Các bạn cho mình hỏi với tự nhiên trong ĐT mình gần đây có Sim…
Thủ Thuật về Nhận định về nét trẻ trung trong môi trường tự nhiên vạn…
Thủ Thuật về dooshku là gì - Nghĩa của từ dooshku -Thủ Thuật Mới 2022…
Kinh Nghiệm Hướng dẫn Tìm 4 số hạng liên tục của một cấp số cộng…
Mẹo Hướng dẫn Em hãy cho biết thêm thêm nếu đèn huỳnh quang không còn…