2016-03-15 3 views
-1

Когда я запускаю клиент и вводим число, оно передается как строка. Однако он должен быть передан как целое число. Как мне это изменить? а также изменить с while (true) на do, тогда как при входе пользователя в «*» программа заканчивается.Изменение строки на целое число

while (true){ 
        System.out.print("Enter a number "); 
      String message = keyboard.nextLine(); 
      out.writeUTF(message); 
     } 
+0

Что такое 'keyboard'? – Aaron

+1

http://stackoverflow.com/questions/5585779/converting-string-to-int-in-java –

ответ

0

использование int option = keyboard.nextInt();

видел здесь: if you want to know more

+0

Что я могу изменить эту строку? out.writeUTF (сообщение); – JanetKeelan

+0

@JanetKeelan, что вы пытаетесь сказать? – osanger

+1

Я его отсортировал. Спасибо – JanetKeelan

0

Попробуйте это: Scanner.nextInt() дает обратно целое ...

Пример

final Scanner in = new Scanner(System.in); 
    int number = 0; 
    while(true){ 
      System.out.print("Enter a number "); 
      number = in.nextInt(); 
      out.writeUTF(number); 
    } 

UPDATE:

Если вам нужно сделать это в цикле, пока пользователь не вводит конкретный ключ (например, "*") затем:

final Scanner in = new Scanner(System.in); 
String input = ""; 
do { 
    System.out.print("Enter a number "); 
    int numberParsed = 0; 
    input = in.nextLine(); 
    try { 
     numberParsed = Integer.parseInt(input); 
     System.out.println(numberParsed); 
     out.writeUTF(numberParsed); 
    } catch (final NumberFormatException ex) { 
     System.err.println("That input could not be parsed to integer...."); 
    } 
} while (!input.equals("*")); 
+0

Это работает отлично. Можно ли изменить это на время, пока пользователь переходит к «*», программа перестает работать? – JanetKeelan

+0

да, конечно, но код должен немного измениться ... взгляните на обновление, пожалуйста –

0

Я полагаю, что клавиатура является объектом типа Scanner.

Scanner имеет способ nextInt для получения следующего целого числа.

В противном случае вы можете преобразовать строку в целое число с помощью метода Integer.parseInt следующим образом:

String message = keyboard.nextLine(); 
int myInt = Integer.parseInt(message); 
0

Вместо использования nextLine и writeUTF, я хотел бы использовать nextInthasNextInt что позволяет завершить ввод с не- int) с writeInt. Использование try-with-resources и ByteArrayOutputStream для тестирования, что может выглядеть как

Scanner keyboard = new Scanner(System.in); 
ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
try (DataOutputStream out = new DataOutputStream(baos)) { 
    System.out.print("Enter a number "); 
    while (keyboard.hasNextInt()) { 
     int v = keyboard.nextInt(); 
     out.writeInt(v); 
     System.out.print("Enter a number "); 
    } 
} catch (IOException e) { 
    e.printStackTrace(); 
} 
System.out.println(Arrays.toString(baos.toByteArray())); 
Смежные вопросы