﻿ ThinBASIC Core Language > BuiltIn Functions > String functions > StrDistance

# StrDistance

Navigation:  ThinBASIC Core Language > BuiltIn Functions > String functions >

# StrDistance

Description

Levenshtein string distance algorithm (string similarity test)

Levenshtein distance is a measure of the similarity between two strings-

Syntax

n = StrDistance(Str1, Str2 [, CaseSensitive])

Returns

Number

Parameters

 Name Type Optional Meaning Str1 String No String 1 Str2 String No String 1 CaseSensitive Number Yes %TRUE or %FALSE if comparison has to consider letter case. Default value is %FALSE.

Remarks

The distance is the number of deletions, insertions, or substitutions required to transform Str1 into Str2.

For example, If Str1 is "test" and t is "test", then StrDistance(s,t) = 0, because no transformations are needed. The strings are already identical.

If Str1 is "test" and Str2 is "tent", then StrDistance(s,t) = 1, because one substitution (change "s" to "n") is sufficient to transform Str1 into Str2.

The greater the Levenshtein distance, the more different the strings are.

Levenshtein distance name comes from the Russian scientist Vladimir Levenshtein, who devised the algorithm in 1965.

The metric is also sometimes called edit distance.

Restrictions

https://en.wikipedia.org/wiki/Levenshtein_distance

Examples

Uses "Console"

'---Test the StrDistance function
Sub TestStrDistance()
Dim str1 As String = "kitten"
Dim str2 As String = "sitting"

Integer distance = StrDistance(str1, str2)

Printl \$("Levenshtein distance between [{str1}] and [{str2}] is: "), distance
End Sub

'---Run the test
TestStrDistance()
WaitKey