Stringtokenizer не определен

#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. Говорят, что предыдущая ошибка была связана с конструктором Что это за новая ошибка?