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:
Daemon Threads in Java
The Spring @Controller and @RestController Annotations
Java Program to Implement Randomized Binary Search Tree
Tạo ứng dụng Java RESTful Client không sử dụng 3rd party libraries
Arrays.asList vs new ArrayList(Arrays.asList())
Spring Data JPA @Query
Java Program to Construct an Expression Tree for an Infix Expression
Java CyclicBarrier vs CountDownLatch
Vấn đề Nhà sản xuất (Producer) – Người tiêu dùng (Consumer) và đồng bộ hóa các luồng trong Java
Allow user:password in URL
Java Program to Create a Balanced Binary Tree of the Incoming Data
Spring’s RequestBody and ResponseBody Annotations
Map Interface trong java
Java Program to Create a Minimal Set of All Edges Whose Addition will Convert it to a Strongly Conne...
How to Get All Spring-Managed Beans?
Format ZonedDateTime to String
Java Program to Generate Random Partition out of a Given Set of Numbers or Characters
Java Program to Implement Graham Scan Algorithm to Find the Convex Hull
How to Round a Number to N Decimal Places in Java
Reading an HTTP Response Body as a String in Java
Convert Character Array to String in Java
Java Program to Implement the Monoalphabetic Cypher
Java Program to Implement Hash Trie
Spring Boot: Customize Whitelabel Error Page
Java – Write an InputStream to a File
Các kiểu dữ liệu trong java
Java Program to Implement Coppersmith Freivald’s Algorithm
Migrating from JUnit 4 to JUnit 5
Java Program to Decode a Message Encoded Using Playfair Cipher
Guide to Character Encoding
Lập trình hướng đối tượng (OOPs) trong java
A Guide to the finalize Method in Java