我写了一个程序,要求用户输入名称,数字和相关的任何注释。然后,我试图允许用户搜索任何名称并显示该人员信息。我还希望能够存储和阅读电话簿中的文件。我在存储/读取时遇到问题以及识别创建的单独类。我猜测我只是语法错误,因为我还是编程新手。谢谢你的帮助!
public class Entry {
public String name, num, notes;
name = a;
num = b;
notes = c;
}
import java.util.*;
import java.io.IOException;
public class Phonebook {
static int amount;
static Scanner input = new Scanner(System.in);
static file f ("FileName");
public static Entry[] pb = new Entry[200];
public static void main(String[] args) {
String ask;
char letter;
amount = 0;
do{
System.out.println("Enter a command");
ask = input.nextLine();
letter = Character.toLowerCase(ask.charAt(0));
switch (letter) {
case 'e': System.out.println(add()); break;
case 'f': System.out.println(find()); break;
case 'l': System.out.println(list()); break;
case 'h': System.out.println(help()); break;
case 'q': System.out.println("Quit"); break;
default: System.out.println("Not a valid command"); break;
}
} while (letter != 'q');
}
public static void help() {
System.out.println("Use e for enter");
System.out.println("Use f for find");
System.out.println("Use l for list");
System.out.println("Use h to see this menu again");
}
public static void add() {
String a, b, c;
System.out.println("Enter a name: ");
a = input.nextLine();
System.out.println("Enter a number: ");
b = input.nextLine();
System.out.println("Enter any notes: ");
c = input.nextLine();
}
public static void list() {
for (int i = 0; i < amount; i++)
System.out.println(pb[i].name + pb[i].num + pb[i].notes);
}
public static void find () {
String f;
boolean found;
found = false;
System.out.println("Who?");
f = input.nextLine();
for (int i = 0; i < amount; i++); {
if (f.equals((pb[i].name))) {
System.out.println(pb[i].name + pb[i].num + pb[i].notes);
found = true;
} if (!found)
System.out.println("Not found");
}
}
public static void WritePhoneBook (String f) throws Exception {
PrintStream p = new PrintStream(f);
for (int i = 0; i < amount; i++) {
p.println(pb[i].name + pb[i].num + pb[i].notes);
p.close();
System.out.println("Phonebook stored.");
}
}
}
我不确定如何显示我收到的错误,但它们是:
答案 0 :(得分:1)
由于代码甚至没有编译,让我只看一下编译错误(而不是逻辑):
static file f ("FileName");
File
(大写字母F)。在java中,按照惯例,所有类都以大写字母开头。
语句未正确构造。它应该是
static File f = "FileName";
或类似的东西。请注意,您还需要import java.io.File
。
System.out.println(add());
... 方法添加,查找...返回void。意思是,他们没有回报。 System.out.println()不会对任何内容进行操作。
PrintStream p = new PrintStream(f);
您尚未导入java.io.PrintStream
。
i
无法解析为变量这是因为;
的最后for
。
for (int i = 0; i < amount; i++) { //note: no ; after the )
if (f.equals((pb[i].name))) {
在Entry.java
name = a;
之类的作业在方法外无效,a
,b
和c
也未定义。看起来你对Java很新。您可能希望使用像eclipse这样的IDE,以便更好地了解错误和推荐的修复,并且可以更快地修复它们。但是,如果您从命令行使用javac
(我认为您正在做的事情),您将学到更多知识并学习更好。当然,你需要做很多阅读和学习。
PS: 这些问题很可能会被遗忘,因为它表明OP在寻找解决方案方面缺乏努力。我今天碰巧有几分钟,但是当似乎没有OP的努力时,没有人有时间调查这个细节级别。
OP =原始海报=提出问题的人