我正在尝试创建一个程序,它将文件名作为参数,打开该文件,读入该文件中的所有文本(大约1段),然后给用户一些操作段落的选项。
我遇到扫描仪问题,要求用户输入命令。例如,如果用户按下1,我希望它将用户带到public void palindrome(),但它不会编译。
我尚未在代码中写入公共无效回文,但不应该有任何编译错误。
import java.util.ArrayList;
import java.util.Scanner;
import java.util.*;
import java.io.File;
public class Test {
public static void main (String [] args) {
Scanner scanner = new Scanner(new File(args[0]));
ArrayList<String> strings = new ArrayList<String>();
while( scanner.hasNext() ) {
strings.add( scanner.next() );
}
ArrayList<String> a = new ArrayList<String>(strings);
while (true) {
System.out.println ("\nWhat would you like to do? Here are your options: \nPress 1 to Print all palindromes \nPress 2 to Replace any letter \nPress 3 to remove all occurences of a word \nPress 4 to exit\n");
Scanner s = new Scanner(System.in);
String command = s.next();
if (command.equals("1")) {
a.palindrome();
} else if (command.equals("2")){
a.letter();
} else if (command.equals("3")){
a.word();
} else if (command.equals("4")){
System.exit(0);
}
}
}
public void palindrome () {
}
public void letter () {
}
public void word () {
}
}
答案 0 :(得分:1)
您已将a
定义为Arraylist
。并且正在呼叫a.palindrome()
。
Arraylist
没有方法palindrome()
,我相信您只想致电palindrome()
课程的Test
。
要做到这一点:
在主课程中创建Test
的实例,然后在该实例上调用palindrome()
(首选选项)
或
将方法设为静态,然后调用Test.palindrome()
在任何一种情况下,您都可以考虑让它参与Arraylist
答案 1 :(得分:0)
您需要做的是创建Test
类
Test test = new Test();
然后致电
test.palindrome();
编译器失败是因为您调用a.palindrome()
而a
是ArrayList<String>()
的实例,并且它没有方法ArrayList
类没有名为palindrome()