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:
How to Read HTTP Headers in Spring REST Controllers
Java Timer
Java Program to Implement the Monoalphabetic Cypher
Java Program to Permute All Letters of an Input String
Java Web Services – Jersey JAX-RS – REST và sử dụng REST API testing tools với Postman
Summing Numbers with Java Streams
String Joiner trong Java 8
Extract links from an HTML page
Giới thiệu JDBC Connection Pool
Send email with SMTPS (eg. Google GMail)
Using a Mutex Object in Java
Guide to java.util.concurrent.Future
Tránh lỗi ConcurrentModificationException trong Java như thế nào?
Setting the Java Version in Maven
Java – Reader to String
Java Program to Print only Odd Numbered Levels of a Tree
“Stream has already been operated upon or closed” Exception in Java
A Guide to the Java LinkedList
Java Program to Implement Cartesian Tree
Java Program to Check Whether a Given Point is in a Given Polygon
Checking for Empty or Blank Strings in Java
Bootstrapping Hibernate 5 with Spring
Guava – Join and Split Collections
Java Program to Implement ConcurrentHashMap API
Custom Thread Pools In Java 8 Parallel Streams
Service Registration with Eureka
Các chương trình minh họa sử dụng Cấu trúc điều khiển trong Java
Hướng dẫn Java Design Pattern – Adapter
Lập trình đa luồng với CompletableFuture trong Java 8
Jackson Ignore Properties on Marshalling
Java Program to Implement Solovay Strassen Primality Test Algorithm
Java Perform to a 2D FFT Inplace Given a Complex 2D Array