Я пытался закодировать средство поиска анаграмм на Java, чтобы в терминале после компиляции все, что мне нужно было сделать, это
- Введите
java Anagramfind list.txt
- При появлении запроса введите слово, скажите
treasure
- Программа печатает анаграмму, например
austerer
- Появляется еще одно приглашение с вопросом, хочу ли я еще один (
yes/no
)
Файл list.txt содержит большинство, если не все слова английского языка.
Вот что у меня пока...
import java.util.*;
import java.io.*;
class ProjectAnagram {
public static void main (String[] args throws IOException) {
//THis here declares an array of strings
Scanner dictionary = new Scanner new (fileInputStream(args[0]));
String[] entireArray = new String[173528]; //name of array + 173258
System.out.println ("Put something in please");
Scanner keyboard = new Scanner(System.in);
System.out.println ("Inserted");
String word = keyboard;
}
Мне все еще нужно добавить остальные.
В основном у меня были проблемы с использованием массивов, на которые я ссылался здесь:
- Java читает файл и сохраняет текст в массиве
- http://docs.oracle.com/javase/tutorial/essential/environment/cmdLineArgs.html
- Что такое String args[]? параметр в основном методе Java
У меня также возникают проблемы с использованием Stringbuffer, который проверяет, имеют ли слова одинаковые символы или нет.
Программа сначала проверяет, имеют ли входная строка и строка в текстовом файле одинаковую длину, чтобы исключить очевидные неанаграммы. Если нет, то он переходит к следующему слову в списке, возможно, с i++
в каком-то цикле.