2014-01-06 4 views
-1

Я пытаюсь создать программу, которая принимает имя файла в качестве параметра, открывает этот файл, читает весь текст в этом файле (около 1 абзаца), а затем дает пользователю несколько параметров для манипулирования абзацем.Классы и объекты с ArrayList

У меня возникли проблемы со сканером, который запрашивает у пользователя команду. Например, если пользователь нажимает 1, я хочу, чтобы пользователь заносил пользователя в открытый палиндром(), но он не будет компилироваться.

Я еще не написал код для общедоступного палиндрома, но ошибок компиляции не должно быть.

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

Компилятор выдает сообщение об ошибке, когда он не скомпилирован. Почему бы вам не опубликовать сообщение об ошибке? –

ответ

0

Что вам нужно сделать, это создать экземпляр вашего Test класса

Test test = new Test(); 

Затем вызовите

test.palindrome(); 

Сбой компилятора, поскольку вы вызывали a.palindrome() и a, являющийся экземпляром ArrayList<String>(), и у него нет метода ArrayList класс do У esn't есть метод под названием palindrome()

1

Вы определили a как Arraylist. и звонят a.palindrome().

Arraylist не метод palindrome(), я полагаю, вы просто хотите назвать palindrome() вашего Test класса.

Чтобы сделать это либо:

  • Создать экземпляр Test в пределах вашего основного класса затем вызвать palindrome() на этом экземпляре (предпочтительный вариант)

    или

  • сделать статический метод, то звонок Test.palindrome()

В любом случае, вы можете рассмотреть вопрос о его взять в аргументе Arraylist

Смежные вопросы