我正在尝试编写一个程序,当给定两个字符串时,它会“处理”一个字母以形成同义词。这是一个显示它的示例的网站:
http://www.braingle.com/brainteasers/46611/letter-juggle.html
我的任务是“编写一个程序——给定一个包含同义词对的文件和一个包含字典中单词序列的第二个文件——将尽可能多地从字典中生成可用于设置拼图的单词对每个同义词对。”
这些是文件 - dictionary.txt和synonyms.txt。
当我想出一个单词时,我会查字典看它是否有效。因此,使用“boast”和“hip”这两个词,当我将它们组合起来时,我可以得到“boat”和“ship”(它们是同义词)。
现在,我拿了两个字符串(钉子和别针)并将它们分成一个字符数组,但我不知道如何调整它们来检查它们是否是有效的单词。
我希望能够将“nail”中的字母“n”添加到“pin”以给我“pinn”,然后我想检查“pinn”的每个组合并检查它是否是一个有效的单词 - 如果是,然后我检查“ail”是否可以是一个单词,如果不是,那么我继续“nail”中的下一个字母 pinn -> pinn, pnin, pnni, pnin......
public class LetterJuggle {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
try{
// Open the file that is the first
// command line parameter
FileInputStream fstream = new FileInputStream("Dictionary.txt"); //Dictionary.txt //Synonyms.txt
// Get the object of DataInputStream
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;
int size =0;
while ((strLine = br.readLine()) != null){
size++;
}
String [] dictionary = new String [size];
fstream = new FileInputStream("Dictionary.txt");
in = new DataInputStream(fstream);
br = new BufferedReader(new InputStreamReader(in));
size = 0;
//Read File Line By Line
while ((strLine = br.readLine()) != null){
// Print the content on the console
dictionary[size] = strLine;
size++;
}
fstream = new FileInputStream("Synonyms.txt");
in = new DataInputStream(fstream);
br = new BufferedReader(new InputStreamReader(in));
while ((strLine = br.readLine()) != null){
//System.out.println(strLine);
String [] words = strLine.split("\\s+");
for(int i =0; i < words.length; i++){
//System.out.println(words[i]);
}
char[] ch_array_1 = words[0].toCharArray();
char[] ch_array_2 = words[1].toCharArray();
for(int i =0; i < ch_array_1.length; i++){
System.out.print(ch_array_1[i] + " ");
}
System.out.println();
for(int i =0; i < ch_array_2.length; i++){
System.out.print(ch_array_2[i] + " ");
}
System.out.println();
}
//Close the input stream
in.close();
}catch(Exception e){//Catch exception if any
System.err.println("Error: " + e.getMessage());
}
}
}