2015-02-08 3 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

+0

Не стесняйтесь, сообщите нам об ошибке. – ChiefTwoPencils

+0

Chief, ошибка размещена над кодом –

ответ

0

Вид ответа на ваш вопрос. Ваш конструктор выглядит следующим образом

public Piglatin(String[] array) 

При создании объекта вы использовали

Piglatin p = new Piglatin(); 

Что вы хотите сделать что-то вроде этого:

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

, потому что ваш конструктор принимает параметр и у вас нет конструктора, который принимает 0 параметров, возникает ошибка.

Смежные вопросы