2015-02-08 28 views
0

好吧,我有一個作業任務,我要創建一個類Piglatin,以便PigDriver將英語句子翻譯成Piglatin,我已經寫了幾乎點完成的,但我得到一個錯誤的驅動程序:Piglatin翻譯,得到一個單一的錯誤,構造函數Piglatin()undefined

構造Piglatin()是未定義

這裏是驅動程序:

import java.util.*; 
public class PigDriver{ 
    public static void main(String[] args){ 
    Scanner scan = new Scanner(System.in); 
    String t = " "; 
    Piglatin p = new Piglatin(); 
    while(t.length() > 0){ 
    t = scan.nextLine(); 
    t = t.toLowerCase(); 
    p.pigConvert(t); 
    } 
    p.pigReport(); 
    } 
} 

這裏是類:

import java.util.StringTokenizer; 

public class Piglatin{ 

    public String[] phrases; 
    public String result; 
    public String s; 
    public String token; 
    StringTokenizer str; 

    public Piglatin(String[] array){ 
    phrases = array; 
    } 

    public String pigAll(){ 
    result=""; 
    StringTokenizer str; 
    while(s!=null){ 
     for(int j=0; j<phrases.length; j++){ 
     str = new StringTokenizer(s,"\t\n\r\f,.?!;: "); 
     s=phrases[j]; 
     while(str.hasMoreTokens()){ 
      result += " "; 
      result += pigConvert(str.nextToken()); 
     } 
     } 
    }return result;} 


    public String pigConvert(String token){ 
    token=str.nextToken(); 
    token=token.toLowerCase(); 
    if((token.charAt(0)=='a' || token.charAt(0)=='e' || token.charAt(0)=='i' || 
     token.charAt(0)=='o' || token.charAt(0)=='u')){ 
     token = (token+"ay"); 
    } 
    else{ 
     token = token.substring(1) + "ay"; 
    } 
    return token; 
    } 

    public void pigReport(){ 
    System.out.println(pigAll()); 
    } 
} 
+1

你的'PigLatin'構造函數需要一個數組,但是你沒有通過它。要麼傳遞一個數組,要麼創建一個無參數構造函數'public Piglatin(){}'。 – csmckelvey 2015-02-08 22:18:57

+0

不要害羞,告訴我們錯誤。 – ChiefTwoPencils 2015-02-08 22:19:04

+0

首席,錯誤是張貼在代碼 – 2015-02-08 22:20:47

回答

0

回答您的問題。 你的構造看起來像這樣

public Piglatin(String[] array) 

當你創建你用

Piglatin p = new Piglatin(); 

你想要做什麼你的對象是這樣的:

String[] array = new String[]; 
//fill array with values 
Piglatin p = new PigLatin(array); 

,因爲你的構造函數接受一個參數並且您沒有接受0參數的構造函數,則會引發錯誤。