2015-02-08 48 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参数的构造函数,则会引发错误。

相关问题