2016-05-18 9 views
0

Если я хочу, чтобы позволить ввод целого числа в JOptionPane, я должен был быКак разрешить ввод строк в JOptionPane

String something= JOptionPane.showInputDialog(null, " "); 
int x = Integer.parseInt(something); 

Однако на этот раз я хочу, чтобы ввести строку в JOptionPane InputDialog. Есть ли способ, похожий на int x = Integer.parseInt();, но работает для строки?

И как я могу сделать предварительную функцию, при которой программа сможет обнаруживать ошибку, такую ​​как неверный ввод? Например. когда пользователь (ы) вводит пространство и вводит вместо значения или слова, или их ответ выходит за пределы допустимого диапазона. Таким образом, в основном их ответ - это что-то вроде пространства или -99, когда ответ должен быть в пределах от 1 до 100.

Прошу прощения, если это звучит глупо, я очень новичок в программировании.

+1

Вы уже получаете '' 'String''' из диалогового окна ввода, почему вы хотите, чтобы разобрать его в' '' String''' еще раз? –

ответ

0

Есть ли способ, аналогичный Int x = Integer.parseInt(); но работает для строки?

Чтобы ответить на ваш первый вопрос, есть способ. Как @John Verner сказал, просто используйте строку, которую вы получаете от JOptionPane! Не нужно ничего особенного делать.

И как я могу сделать предварительную функцию, при которой программа сможет обнаруживать ошибку, такую ​​как неверный ввод?

Пробуйте использовать Integer.parseInt(); на строке, которую вы получите. Если он выбрасывает и исключает, или возвращенный int не находится в указанном диапазоне, попросите пользователя ввести его снова.

Для получения дополнительной информации о ловле исключений, click here.

1
public static void main(String[] args) { 
     String message = JOptionPane.showInputDialog(null, "Enter a message:"); 
     boolean validMessage = false; 
     do { 
      if (isMessageEmpty(message)) { 
       message = JOptionPane.showInputDialog(null, "No message entered! Enter a message:"); 
      } else { 
       if (Integer.parseInt(message) > 100 || Integer.parseInt(message) < 0) { 
        message = JOptionPane.showInputDialog(null, "Message not acceptable, please enter a valid message::"); 
       } else { 
        validMessage = true; 
       } 
      } 
     } while (!validMessage); 
    } 

    private static boolean isMessageEmpty(String message) { 
     return message.trim().isEmpty(); 
    }