This is a java program to implement Wagner and Fisher Algorithm. In computer science, the Wagner–Fischer algorithm is a dynamic programming algorithm that computes the edit distance between two strings of characters.
Here is the source code of the Java Program to Implement Wagner and Fisher Algorithm for online String Matching. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.
package com.maixuanviet.setandstring; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class WagnerandFischer { public int getLevenshteinDistance(String str1, String str2) { int len1 = str1.length(); int len2 = str2.length(); int[][] arr = new int[len1 + 1][len2 + 1]; for (int i = 0; i <= len1; i++) arr[i][0] = i; for (int i = 1; i <= len2; i++) arr[0][i] = i; for (int i = 1; i <= len1; i++) { for (int j = 1; j <= len2; j++) { int m = (str1.charAt(i - 1) == str2.charAt(j - 1)) ? 0 : 1; arr[i][j] = Math.min( Math.min(arr[i - 1][j] + 1, arr[i][j - 1] + 1), arr[i - 1][j - 1] + m); } } return arr[len1][len2]; } public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Enter string 1 :"); String str1 = br.readLine(); System.out.println("Enter string 2 :"); String str2 = br.readLine(); WagnerandFischer wf = new WagnerandFischer(); int lDist = wf.getLevenshteinDistance(str1, str2); System.out.println("Edit (Levenshtein) Distance between two strings = " + lDist); br.close(); } }
Output:
$ javac WagnerandFischer.java $ java WagnerandFischer Enter string 1 : Wagner and Fisher Algorithm Enter string 2 : Sanfoundry is No. 1 choice for Deep Hands-ON Trainings in SAN, Linux & C, Kernel & Device Driver Programming. Our Founder has trained employees of almost all Top Companies in India. Here are few of them: VMware, Citrix, Oracle, Motorola, Ericsson, Aricent, HP, Intuit, Microsoft, Cisco, SAP Labs, Siemens, Symantec, Redhat, Chelsio, Cavium Networks, ST Microelectronics, Samsung, LG-Soft, Wipro, TCS, HCL, IBM, Accenture, HSBC, Northwest Bank, Mphasis, Tata Elxsi, Tata Communications, Mindtree, Cognizant, mid size IT companies and many Startups. Students from top Universities and colleges such as NIT Trichy, BITS Pilani, University of California, Irvine, University of Texas, Austin & PESIT Bangalore have benefited a lot from these courses as well. The assignments and real time projects for our courses are of extremely high quality with excellent learning curve. Edit (Levenshtein) Distance between two strings = 844
Related posts:
LinkedHashSet trong java
@Order in Spring
LinkedHashSet trong Java hoạt động như thế nào?
Simultaneous Spring WebClient Calls
Spring Boot - Tomcat Deployment
Java Program to Implement Graph Structured Stack
Spring Boot Annotations
Spring Security – security none, filters none, access permitAll
So sánh HashMap và Hashtable trong Java
String Processing with Apache Commons Lang 3
Java Program to Implement RoleUnresolvedList API
Prevent Cross-Site Scripting (XSS) in a Spring Application
Java Web Services – JAX-WS – SOAP
Most commonly used String methods in Java
Guide to the ConcurrentSkipListMap
Hướng dẫn sử dụng Lớp FilePermission trong java
Hướng dẫn Java Design Pattern – Observer
Remove the First Element from a List
Guide to Guava Table
A Guide to LinkedHashMap in Java
Lớp Collectors trong Java 8
Guide to Java 8 groupingBy Collector
Configure a RestTemplate with RestTemplateBuilder
Testing an OAuth Secured API with Spring MVC
Java String to InputStream
Java Program to Check Whether it is Weakly Connected or Strongly Connected for a Directed Graph
Spring Boot - Servlet Filter
Java 8 Stream findFirst() vs. findAny()
Extra Login Fields with Spring Security
Custom Error Pages with Spring MVC
Encode a String to UTF-8 in Java
ExecutorService – Waiting for Threads to Finish