ハッシュ テーブルのことは気にしないで、文字列の管理方法を教えてください。
ハッシュテーブルを使用して、ユーザーが辞書に入力した単語のスペル チェックを行う必要があります。指定された単語が辞書に存在するかどうかを確認するために、ハッシュ テーブルから checkDictionary() という名前のメソッドを取得しました。単語が存在する場合はブール値を返し、存在しない場合は false を返します。
私がやりたいことは、スペルが間違っているときに辞書で単語をチェックして、可能な修正を加えたいということです。
可能な修正:
1 文字を変更する: たとえば、スペル ミスの単語が「kest」である場合、一度に 1 文字ずつ変更するあらゆる可能性を試して、変更された単語を辞書で調べます。可能性は、「aest」、「best」、...、「zest」、「kast」、...、「kzst」などです。
---一度に 1 つの文字を変更するにはどうすればよいですか。それも a から z に変更できます。
隣接する文字を交換する: たとえば、スペル ミスの単語が「ebst」の場合、「best」、「esbt」、および「ebts」を試します。
---隣接する文字を変更するにはどうすればよいですか?交換する必要がありますか?..
1 文字を削除する: たとえば、スペル ミスの単語が「tbird」の場合、一度に 1 文字ずつ削除する可能性をすべて試し、修正された単語を辞書で調べます。「bird」、「tird」、「tbrd」です。 」、および「tbir」。
---毎回文字を削除するにはどうすればよいですか?
入力した単語の長さは任意であることを覚えておいてください。
辞書で単語を確認した後、この提案をユーザーに返す必要があります。これらの関数を実装するために使用できる Strings のメソッドはありますか? 上記の方法の変更、交換、および削除の実装を手伝ってください。
import java.util.*;
import java .io.*;
public class HashTableDemo
{
public static void main(String [] args)
{
// constructs a new empty hashtable with default initial capacity
HashTable hashtable = new HashTable();
Scanner keyboard = null;
Scanner input=null;
try
{
System.out.println("Enter a word to check in dictionary");
keyboard = new Scanner(System.in);
String word = (keyboard.nextLine().toUpperCase());
//Adding aal dictionary words from a text file to hash table.
input=new Scanner(new FileInputStream("TWL.txt"));
int i=1;
// adding value into hashtable
while(input.hasNextLine())
{
String hello = input.nextLine();
hashtable.put( hello, new Integer(i) );
i++;
}
);
if(hashtable.checkDictionary(word))
System.out.println("The word "+word+" is there in the dictionary.");
else
System.out.println("The word "+word+" is not there in the dictionary.");
}//try
//Here I need to implement the required methods if the word is not in dictionary and misspelled.
catch(FileNotFoundException e)
{
System.out.println("Cannot open file");
System.exit(0);
}//end catch