@linkdotnet/stringoperations
v0.4.2
Published
Collection of string utilities. Edit-Distances, Search and Data structures. Offers for example trie, levenshtein distance.
Downloads
432
Maintainers
Readme
String Operations for TypeScript
This library implements some basic string algorithm as well as data structures for a better way of handling strings.
How to install
npm i @linkdotnet/stringoperations
How to use
Trie
The following example shows how to import the trie and use it afterwards
import { Trie } from '@linkdotnet/stringoperations'
const trie = new Trie()
trie.addWord('Hello')
trie.addWord('Helsinki')
trie.addWord('World')
trie.contains('Hello') // true
trie.getWordsWithPrefix('Hel') // [ 'Hello', 'Helsinki' ]
Rope
The following example shows how to use the rope
import { Rope } from '@linkdotnet/stringoperations'
let rope = Rope.create('Hello ')
rope = rope.concatString('World')
rope.toString() // 'Hello World'
rope.charAt(2) // 'l'
Edit-Distances
The following example shows how to use the edit-distances
import { getLongestCommonSubstring, getLevenshteinDistance } from '@linkdotnet/stringoperations'
const longestCommonSubstring = getLongestCommonSubstring('testapps', 'appicontest') // test
const distance = getLevenshteinDistance('Hello', 'Hallo') // 1
With the longest common subsequence we can also determine the most similar word. This helps for example if you want to find out the closest word to an user given input
import { getClosestWord } from '@linkdotnet/stringoperations'
const closestWord = getClosestWord(userInput, false, ['...'])
console.log(`Did you mean ${closestWord} instead of ${userInput}?')
Search
If you want to find all occurrences of a string use the findAll
method. The function implements the Boyer-Moore algorithm with Bad-Character table.
import { contains, findAll } from '@linkdotnet/stringoperations'
const occurrences = findAll('Hello World. Goodbye World', 'World') // [ 6, 21 ]
const hasHit = contains('Hello World. Goodbye World', 'World') // true
Currently implemented algorithms
Edit-Distances
- Longest Common Subsequence
- Longest Common Substring
- Levenshtein Distance
- Hamming Distance
Data-Structures
- Trie
- Rope
Search
- Boyer-Moore
- Palindrom