得到单一错误的Piglatin translator,构造函数Piglatin()undefined

时间:2015-02-08 22:16:33

标签: java

好吧,我有一个家庭作业,我要创建一个类Piglatin,以便PigDriver将英文句子翻译成Piglatin,我已将它写入几乎完成点,但是我在驱动程序中遇到一个错误:

构造函数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 个答案:

答案 0 :(得分:0)

有点回答你的问题。 你的构造函数看起来像这样

public Piglatin(String[] array) 

创建对象时使用

Piglatin p = new Piglatin();

你想要做的是这样的事情:

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

因为你的构造函数接受了一个参数而你没有一个接受0参数的构造函数,所以会抛出一个错误。