Java 小错误我不知道';“我不知道如何修理,”他说;“不是一个陈述”;
我试图做的是从最终用户那里获取输入,并将其写入名为dictionary.txt的文件中。然后,我尝试检查最终用户输入的单词是否不在dictionary.txt文件中,因为我不希望重复。如果单词不在字典中,则它将存储在dictionary.txt中。我遇到的问题是一个Java 小错误我不知道';“我不知道如何修理,”他说;“不是一个陈述”;,java,syntax-error,Java,Syntax Error,我试图做的是从最终用户那里获取输入,并将其写入名为dictionary.txt的文件中。然后,我尝试检查最终用户输入的单词是否不在dictionary.txt文件中,因为我不希望重复。如果单词不在字典中,则它将存储在dictionary.txt中。我遇到的问题是一个编译错误,它告诉我Project3.java:81:nota语句FileWriter aDictionary=newfilewriter(“dictionary.txt”,true) public static void addNew
编译错误
,它告诉我Project3.java:81:nota语句FileWriter aDictionary=newfilewriter(“dictionary.txt”,true)代码>
public static void addNewWord()引发IOException
{
字符串newWord=“”;
newWord=JOptionPane.showInputDialog(null,“输入要添加到词典中的单词”);
字符串aLineFromFile=“”;
字符串filename=“dictionary.txt”;
ArrayList字典=新的ArrayList();
文件结果文件=新文件(文件名);
扫描仪填充=新扫描仪(结果文件);
while(infle.hasNext())
aLineFromFile=infle.nextLine();
if(aLineFromFile.startsWith(newWord))
{
添加(aLineFromFile);
showMessageDialog(null,“单词已经是字典”);
addNewWord();
}
其他的
FileWriter aDictionary=新的FileWriter(“dictionary.txt”,true);
PrintWriter out=新的PrintWriter(词典);
out.println(newWord);
out.close();
aDictionary.close();
返回;
}
我已经导入了java.io.*;javax.swing.*;java.awt.Dimension;java.util.*代码>
如果有人能告诉我为什么会出现此错误,并告诉我如何修复此错误,我将不胜感激。将其他代码放入此{}
块中
像这样
else{
FileWriter aDictionary = new FileWriter("dictionary.txt", true);
PrintWriter out = new PrintWriter(aDictionary);
out.println(newWord);
out.close();
aDictionary.close();
}
别忘了缩进好,它有助于看到丢失的大括号和范围
这应该更好地发挥作用:
public static void addNewWord() throws IOException {
String newWord = JOptionPane.showInputDialog(null, "Enter the word you want to add to your dictionary.");
String filename = "dictionary.txt";
File resultsFile = new File(filename);
Scanner inFile = new Scanner(resultsFile);
List<String> dictionary = new ArrayList<String>();
while (inFile.hasNext()) {
String aLineFromFile = inFile.nextLine();
if (aLineFromFile.startsWith(newWord)) {
dictionary.add(aLineFromFile);
JOptionPane.showMessageDialog(null, "Word already is dictionary");
addNewWord();
} else {
FileWriter aDictionary = new FileWriter("dictionary.txt", true);
PrintWriter out = new PrintWriter(aDictionary);
out.println(newWord);
out.close();
aDictionary.close();
}
}
}
public static void addNewWord()引发IOException{
String newWord=JOptionPane.showInputDialog(null,“输入要添加到词典中的单词”);
字符串filename=“dictionary.txt”;
文件结果文件=新文件(文件名);
扫描仪填充=新扫描仪(结果文件);
列表字典=新的ArrayList();
while(infle.hasNext()){
字符串aLineFromFile=infle.nextLine();
if(aLineFromFile.startsWith(newWord)){
添加(aLineFromFile);
showMessageDialog(null,“单词已经是字典”);
addNewWord();
}否则{
FileWriter aDictionary=新的FileWriter(“dictionary.txt”,true);
PrintWriter out=新的PrintWriter(词典);
out.println(newWord);
out.close();
aDictionary.close();
}
}
}
使用以下修改后的代码。你错过了while循环和else阻塞后的大括号
public static void addNewWord() throws IOException {
String newWord = "";
newWord = JOptionPane.showInputDialog(null, "Enter the word you want to add to your dictionary.");
String aLineFromFile = "";
String filename = "dictionary.txt";
ArrayList<String> dictionary = new ArrayList<String>();
File resultsFile = new File(filename);
Scanner inFile = new Scanner(resultsFile);
while (inFile.hasNext()) {
aLineFromFile = inFile.nextLine();
if (aLineFromFile.startsWith(newWord)) {
dictionary.add(aLineFromFile);
JOptionPane.showMessageDialog(null, "Word already is dictionary");
addNewWord();
} else {
FileWriter aDictionary = new FileWriter("dictionary.txt", true);
PrintWriter out = new PrintWriter(aDictionary);
out.println(newWord);
out.close();
aDictionary.close();
}
}
}
public static void addNewWord()引发IOException{
字符串newWord=“”;
newWord=JOptionPane.showInputDialog(null,“输入要添加到词典中的单词”);
字符串aLineFromFile=“”;
字符串filename=“dictionary.txt”;
ArrayList字典=新的ArrayList();
文件结果文件=新文件(文件名);
扫描仪填充=新扫描仪(结果文件);
while(infle.hasNext()){
aLineFromFile=infle.nextLine();
if(aLineFromFile.startsWith(newWord)){
添加(aLineFromFile);
showMessageDialog(null,“单词已经是字典”);
addNewWord();
}否则{
FileWriter aDictionary=新的FileWriter(“dictionary.txt”,true);
PrintWriter out=新的PrintWriter(词典);
out.println(newWord);
out.close();
aDictionary.close();
}
}
}
这是您的代码,但这只是问题的开始:
public static void addNewWord() throws IOException {
String newWord;
newWord = JOptionPane.showInputDialog(null, "Enter the word you want to add to your dictionary.");
String aLineFromFile = "";
String filename = "dictionary.txt";
ArrayList<String> dictionary = new ArrayList<String>();
File resultsFile = new File(filename);
Scanner inFile = new Scanner(resultsFile);
while (inFile.hasNext()) {
aLineFromFile = inFile.nextLine();
if (aLineFromFile.startsWith(newWord)) {
dictionary.add(aLineFromFile);
JOptionPane.showMessageDialog(null, "Word already is dictionary");
addNewWord();
} else {
FileWriter aDictionary = new FileWriter("dictionary.txt", true);
PrintWriter out = new PrintWriter(aDictionary);
out.println(newWord);
out.close();
aDictionary.close();
}
}
}
public static void addNewWord()引发IOException{
字符串新词;
newWord=JOptionPane.showInputDialog(null,“输入要添加到词典中的单词”);
字符串aLineFromFile=“”;
字符串filename=“dictionary.txt”;
ArrayList字典=新的ArrayList();
文件结果文件=新文件(文件名);
扫描仪填充=新扫描仪(结果文件);
while(infle.hasNext()){
aLineFromFile=infle.nextLine();
if(aLineFromFile.startsWith(newWord)){
添加(aLineFromFile);
showMessageDialog(null,“单词已经是字典”);
addNewWord();
}否则{
FileWriter aDictionary=新的FileWriter(“dictionary.txt”,true);
PrintWriter out=新的PrintWriter(词典);
out.println(newWord);
out.close();
aDictionary.close();
}
}
}
我认为这是个糟糕的构思。没有理由将这样的功能与UI/Swing类混为一谈。将两者分开,否则如果没有Swing UI,您将永远无法使用此方法。这称为关注点分层或分离。更好的格式:
public static void addNewWord()throws IOException {
String newWord = "";
newWord = JOptionPane.showInputDialog(null, "Enter the word you want to add to your dictionary.");
String aLineFromFile = "";
String filename = "dictionary.txt";
ArrayList<String> dictionary = new ArrayList<String>();
File resultsFile = new File(filename);
Scanner inFile = new Scanner(resultsFile);
while (inFile.hasNext()) {
aLineFromFile = inFile.nextLine();
if (aLineFromFile.startsWith(newWord)) {
dictionary.add(aLineFromFile);
JOptionPane.showMessageDialog(null, "Word already is dictionary");
addNewWord();
}
else {
FileWriter aDictionary = new FileWriter("dictionary.txt", true);
PrintWriter out = new PrintWriter(aDictionary);
out.println(newWord);
out.close();
aDictionary.close();
}
}
return;
}
public static void addNewWord()引发IOException{
字符串newWord=“”;
newWord=JOptionPane.showInputDialog(null,“输入要添加到词典中的单词”);
字符串aLineFromFile=“”;
字符串filename=“dictionary.txt”;
ArrayList字典=新的ArrayList();
文件结果文件=新文件(文件名);
扫描仪填充=新扫描仪(结果文件);
while(infle.hasNext()){
aLineFromFile=infle.nextLine();
if(aLineFromFile.startsWith(newWord)){
添加(aLineFromFile);
showMessageDialog(null,“单词已经是字典”);
addNewWord();
}
否则{
FileWriter aDictionary=新的FileWriter(“dictionary.txt”,true);
PrintWriter out=新打印
public static void addNewWord()throws IOException {
String newWord = "";
newWord = JOptionPane.showInputDialog(null, "Enter the word you want to add to your dictionary.");
String aLineFromFile = "";
String filename = "dictionary.txt";
ArrayList<String> dictionary = new ArrayList<String>();
File resultsFile = new File(filename);
Scanner inFile = new Scanner(resultsFile);
while (inFile.hasNext()) {
aLineFromFile = inFile.nextLine();
if (aLineFromFile.startsWith(newWord)) {
dictionary.add(aLineFromFile);
JOptionPane.showMessageDialog(null, "Word already is dictionary");
addNewWord();
}
else {
FileWriter aDictionary = new FileWriter("dictionary.txt", true);
PrintWriter out = new PrintWriter(aDictionary);
out.println(newWord);
out.close();
aDictionary.close();
}
}
return;
}