Как получить пользовательский ввод в этот кусок кода с помощью сканера - PullRequest
0 голосов
/ 26 марта 2019

Я могу заставить программу добавить предустановленные значения в CSV-файл, но я хочу настроить его таким образом, чтобы пользователь мог вводить идентификатор студента Char (6) и метку Student (макс. 100), а также гарантировать, что знак минус не можетбыть введеннымКак бы я поступил так?

public class Practicalassessment {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws IOException {

       System.out.println("Enter the Students ID:  ");
       scanner scanner = new scanner (System.in);
       String ID = scanner.nextline();
       System.out.println("You have selected Student" + ID);

       System.out.println("Enter the Students Mark");
       scanner scanner1 = new scanner(System.in);
       String mark = scanner1.nextLine();
       System.out.println("You Have Entered" + mark);

       String filepath = ("marks.txt");


       newMarks(ID,mark,filepath);
    }

    public static void newMarks (String ID, String mark, String filepath) throws IOException
    {
        try
        {
            FileWriter fw = new FileWriter(filepath,true);
            BufferedWriter bw = new BufferedWriter (fw);
            PrintWriter pw = new PrintWriter (bw);

            pw.println(ID+","+mark);
            pw.flush();
            pw.close();

            JOptionPane.showMessageDialog(null, "Records Updated Sucessfully");
        }
        catch (Exception E)
        {
            JOptionPane.showMessageDialog(null, "Records Unable to Be Updated");
        }
    }
}

1 Ответ

0 голосов
/ 26 марта 2019

Лично я бы придерживался единого подхода к пользовательскому опыту. Если вы собираетесь использовать JOptionPane для отображения диалогового окна, то вам следует собирать информацию также с помощью графического интерфейса.

Я бы сделал (обратите внимание, что по соглашению переменные Java имеют значение camelCase, начинающееся с нижнего регистра):

String id = JOptionPane.showInputDialog("Enter Student's ID:");
// NOTE: need to check for null if canceled
// NOTE: should verify the input/format

Сообщение об ошибке отмечено в комментарии, потому что Java Scanner с заглавной буквой. Не уверен, что это за вещь.

Однако, если кто-то хочет использовать Scanner, создайте только один экземпляр:

Scanner scanner = new Scanner(System.in);

System.out.println("Enter the Students ID:  ");
String ID = scanner.nextline();
System.out.println("You have selected Student" + ID);

System.out.println("Enter the Students Mark");
String mark = scanner.nextLine();
System.out.println("You Have Entered" + mark);

...

Обратите внимание, что для входа сканера существуют такие же ограничения проверки входных данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...