好吧,我有一个家庭作业,我要创建一个类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());
}
}
答案 0 :(得分:0)
有点回答你的问题。 你的构造函数看起来像这样
public Piglatin(String[] array)
创建对象时使用
Piglatin p = new Piglatin();
你想要做的是这样的事情:
String[] array = new String[];
//fill array with values
Piglatin p = new PigLatin(array);
因为你的构造函数接受了一个参数而你没有一个接受0参数的构造函数,所以会抛出一个错误。