2014-01-06 107 views
-1

我想創建一個程序,需要一個文件名作爲參數,打開該文件,讀取該文件中的所有文本(約1段),然後給用戶一些選項操縱段落。類和ArrayList的對象

我遇到了詢問用戶命令的掃描儀的問題。例如,如果用戶按1,我希望它將用戶帶到public void palindrome(),但它不會編譯。

我還沒有寫入公共void迴文代碼,但不應該有任何編譯錯誤。

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()aArrayList<String>()的一個實例,並且它沒有方法ArrayList class do沒有一種方法稱爲palindrome()

1

您已將a定義爲Arraylist。並致電a.palindrome()

一個Arraylist沒有方法palindrome(),我相信你只是想打電話palindrome()你的Test類。

要做到這一點無論:

  • 主類中創建的Test一個實例然後調用該實例palindrome()(優先選擇)

  • 使該方法靜態再致電Test.palindrome()

在這兩種情況下,你可能要考慮有它採取的Arraylist