2013-09-22 2 views
1

Я пытаюсь скомпилировать следующий код, но я продолжаю получать не может найти ошибку символа. Назначение требует использования getInput метод, который не требует никаких аргументов и не вернуть ничего, а, главная его несильно, чтобы прочитать вход и отобразить его. Так что я пытался изменить сферу сканера переменной ввода и inputString так, что всякий раз, когда getInput называется, я не должен передать их в него.Как использовать разделитель?

import java.util.Scanner; 

public class ReadKeyboardInput 
{ 
    public static Scanner input = new Scanner(System.in); 
    public static String inputString; 
    public static void main(String[] args) 
    {  

     input.useDelimeter("\\n"); 

     System.out.print("Enter an integer: "); 
     getInput(); 
     System.out.print("Enter a float: "); 
     getInput(); 
     System.out.print("Enter a string: "); 
     getInput();  
    } 
    public static void getInput() 
    {     
     inputString = input.next(); 
     System.out.println("You have entered: " + inputString + "."); 
    } 
} 

Или, если я принести input.useDelimeter ("\ п"); вне области Основного, тогда я получаю еще 2 ошибки «» идентификатор ожидается и незаконного начала типа для этой конкретной линии. Этот измененный код выглядит, как указано выше, за исключением:

public static Scanner input = new Scanner(System.in); 
    public static input.useDelimeter("\\n"); 
    public static String inputString; 
    public static void main(String[] args) 
    { .... 
+0

Какой символ не может найти? – Femaref

+0

Ошибка выглядит так: ошибка: не найден символ input.useDelimeter ("\\ n"); ^ символ: метод useDelimeter (String) местонахождение: переменный ввод типа Scanner 1 ошибка – VictorN

ответ

0

У вашего сегмента кода, кажется, нет проблем.


Что касается предложенной модификации, вы, очевидно, поняли, что это значит сказать public static whatever. Вы можете использовать это только для объявления переменных и методов с помощью класса. Вы ничего не можете сделать. Если это то, что вы действительно хотите сделать, поставьте статический блок инициализации. Просто поставьте это:

static { 
    input.useDelimiter("\\n"); 
} 
+0

Я думаю, что я понял, где я испортился. Однако, спасибо! Что касается Static, о котором вы говорили, я не уверен, что вы имеете в виду. Мое понимание статично просто означает, что все, что приходит после этого, будет создано до создания класса права? – VictorN

3

Вы пишете Delimiter неправильно, может быть? A delimeter было бы чем-то, что измеряет солонину, прежде чем она пойдет на ваш сэндвич.

+1

Omg .. проблема решен. Благодарю вас. Я думал, что исправил это, но, видимо, я этого не сделал. – VictorN

+0

Это всегда самые глупые вещи. Рад, что это было! :-) – Tenner

+0

Если у вас есть шанс, отметьте этот ответ (или другой, если он сработает лучше для вас), как принято. – Tenner

0

Вместо input.useDelimeter("\\n"); написать письмо input.useDelimiter("\\n");.
Это должно сработать для вас.

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