2015-02-10 2 views
-2

Предположим, что есть 2 int a & b, поэтому, когда мы берем входные данные от сканера, нам нужно сначала взять одно значение переменной, а затем нажать enter, а затем взять другое значение от пользователя. Есть ли способ, чтобы поле ввода для объекта int & b появилось одновременно и чтобы присвоить значение, которое пользователь должен будет нажать, ввести только один раз?Как принимать несколько входов от пользователя в одно и то же время и строку в java?

+6

Да, есть несколько способов сделать это –

+4

Наверняка вы не * просто * хотите получить ответ «да» или «нет» на ваш вопрос, так почему бы вам не поделиться тем, что вы пробовали, и объяснить, что конкретно не работает? Если вы ничего не пробовали, пожалуйста, исследуйте и сделайте это самостоятельно * сначала * и вернитесь, когда у вас возникнут проблемы. – tnw

+0

@MotasimFoad Что такое поле ввода? – immibis

ответ

1

Если вы разделите ваш вход, используя пробелы, а затем нажмите клавишу ВВОД, как это:

2 3 

Вы можете использовать nextInt() обычно:

public static void main(String[] args) { 
    Scanner in = new Scanner(System.in); 
    a = in.nextInt(); 
    b = in.nextInt(); 
} 

a будет содержать 2 и b будет содержать 3.

Если вам нужно, вы можете разместить вызовы nextInt() внутри цикла, чтобы вы могли читать несколько строк указанный в другом месте:

public static void main(String[] args) { 
    Scanner in = new Scanner(System.in); 
    int numLines = in.nextInt(); 
    int a, b; 
    for (int i = 0; i < numLines; i++) { 
     a = in.nextInt(); 
     b = in.nextInt(); 
     System.out.println(a + ", " + b); 
    } 
} 
+0

ok, в этом коде будет 2 поля ввода, которые появятся один за другим, но я хочу оба окна появятся одновременно, так что пользователь может дать ему значение в одно и то же время, и пользователь должен будет использовать ввод только один раз. –

+0

@MotasimFoad Что не работает с вашей попыткой до сих пор? – tnw

+0

@tnw, ничего не получается с кодом. Он отлично работает. Ваш код тоже прекрасен. Но я знаю, как это делается, я думал сделать это по-другому. Где мы можем дать более одного входа на одной строке. –

1

Для того, чтобы несколько входов от пользователя из той же строки ввода, вы можете попросить пользователь отделите вход с запятой или пробелом. В случае пробела, ответ Андерсона Виейры дает правильную идею. Вы можете использовать 2 последовательных nextInt() заявления как в

System.out.println("Enter 2 nos."); 
int a = sc.nextInt(); 
int b = sc.nextInt(); 

Кроме того, вы можете специально попросить пользователя отделить две NOS. с запятой, возьмите ввод как String и затем разделите два nos. используя команду Integer.parseInt().

System.out.println("Enter 2 nos. seperated with a comma(,) or a semicolon(;)"); 
String S = sc.nextLine(); 
String nos[] = S.split("[, ;]"); 
int a = Integer.parseInt(nos[0]); 
int b = Integer.parseInt(nos[1]); 

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

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