#java #constructor #undefined #stringtokenizer
#java #constructor #не определено #stringtokenizer
Вопрос:
Привет, у меня возникла некоторая проблема с созданием метода stringtokenizer, который позволяет пользователю вводить строку, а также подсчитывать и печатать токены. Кто-нибудь может помочь мне устранить ошибку? В нем говорится, что конструктор не определен.
public class StringTokenizer
{
public static void main(String[ ] args)
{
Scanner keyboard;
String inputSentence;
StringTokenizer stok = null; //declare a reference to hold the address of a StringTokenizer object
keyboard = new Scanner(System.in);
System.out.println("Enter a line of text: ");
inputSentence = new String(keyboard.nextLine( ) );
while(!(inputSentence.equals("quit")))
{
stok = new StringTokenizer(inputSentence);//the constructor that take a String and uses a space as the delimeter
while (stok.hasMoreTokens());
{
System.out.println("Number of tokens: " stok.countTokens( ));
System.out.println(stok.nextToken( ));
}
System.out.println("Enter another line of data or quitn" );
inputSentence = keyboard.nextLine( );
}
System.out.println("Goodbye");
}//end of main
} //end of class
Комментарии:
1. О да, спасибо, что сообщили мне о другой ошибке, я забыл также указать ее. И да, компилятор говорит, что ошибки были в первую очередь у конструктора, я не знаю, какой конструктор должен быть с этим, поскольку я вспомнил, что мой профессор сказал, что мне нужно только объявить экземпляр, поскольку класс уже находится в пакете java.util. Я создал еще один с другим именем класса, чтобы сделать его менее запутанным, а также импортировал java.util, ошибки все еще случаются. Можете ли вы помочь мне с конструктором?
Ответ №1:
Переименуйте свой класс. Вы выполняете затенение java.util.StringTokenizer
; в качестве альтернативы,
java.util.StringTokenizer stok = null;
и
stok = new java.util.StringTokenizer(inputSentence);
Но это будет менее запутанным, если вы переименуете свой класс.
Комментарии:
1. Согласен. Никогда не рекомендуется называть свой класс так же, как любой класс в любом месте
java
пакета.2. Я создал другой класс с другим именем, а также импортировал java.util.*; ошибка все еще происходит, вы знаете, почему?
3. @DavePhan Вы не удалили существующий класс в текущем пакете с именем
StringTokenizer
(и, следовательно, вы все еще скрываете его).4. @ElliottFrisch На самом деле я создал 2-й на другом ноутбуке, и я также изменил имя класса на первом. Предыдущая ошибка, как говорят, была для конструктора, но я понятия не имею, что это такое
5. Говорят, что предыдущая ошибка была связана с конструктором Что это за новая ошибка?