Java ввод значений через пробел

Консольный ввод чисел через Scanner в одну строку

Добрый день, я ученик, учусь 3-ю неделю. Буду очень благодарен, если кто-то подскажет:
Язык Java.
Вот код:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
import java.util.Scanner; public class Draft_230312_zazadanie13_3_1 { /* 13. Мини-игра в слова. Первый игрок вводит слово. Потом второй игрок вводит два числа, с какого по какой символ можно найти слово внутри исходного, используя substring. Потом первый игрок вводит два числа. Побеждает тот, чье слово длиннее. Пример: 1: революционный 2: 0 3 (вывод: рев) 1: 7 13 (вывод: ионный) Победил игрок 1 */ public static void main(String[] args) { System.out.print("Игрок 1, введите исходное слово: "); Scanner inWordScan = new Scanner(System.in); //new InputStreamReader String inWord = inWordScan.next(); System.out.println("Игрок 2, введите два порядковых номера символов: "); Scanner scan1 = new Scanner(System.in); Scanner scan2 = new Scanner(System.in); int num1 = scan1.nextInt() - 1; int num2 = scan2.nextInt(); String fragmentWord2 = inWord.substring(num1, num2); System.out.println(fragmentWord2); System.out.println("Игрок 1, введите два порядковых номера символов: "); Scanner scan3 = new Scanner(System.in); Scanner scan4 = new Scanner(System.in); int num3 = scan3.nextInt() - 1; int num4 = scan4.nextInt(); String fragmentWord1 = inWord.substring(num3, num4); System.out.println(fragmentWord1); int len2 = fragmentWord2.length(); int len1 = fragmentWord1.length(); if (len2 > len1) { System.out.println("Победил игрок 2."); } else { if (len1 > len2) { System.out.println("Победил игрок 1."); } else { if (len1 == len2) { System.out.println("Длины слов равны. Ничья."); } } } } }
Scanner scan1 = new Scanner(System.in); Scanner scan2 = new Scanner(System.in);

Например:
2
6
То они на экран выводятся в разных стоках. А надо, чтобы выводились на одной строке, через пробел (или также можно через запятую). Хотелось бы спросить у специалистов, можно ли как-то это сделать? Спасибо.

Читайте также:  Create class method javascript

Источник

Ввести через консоль несколько переменных через пробел в одной строке

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

Мне нужно ввести через консоль несколько переменных через пробел в одной строке. Затем требуется сравнить их с ранее введенной переменной, посчитать сколько раз условие сравнения выполняются и вывести количество удачных исходов.

С вводом переменных я вроде как разобрался, а вот как переменные из массива сравнить с другой переменной не знаю. Для ввода переменных через консоль я использовал что-то вроде этого:

int []sl = new int[1000]; for (int i = 0; i  sl.length; i++) { sl[i] = input.nextInt(); }

После каждого слова вставьте слово «Бум!» и выведите список на консоль в одну строку через пробел
Получается все, кроме последнего условия. хэлп%-) Задачка: Считывать с консоли слова, вводимые.

Как записывать числа через пробел, через scanner
Здравствуйте, подскажите пожалуйста как записывать числа через пробел, через scanner.

Как ввести несколько переменных через пробел (std::cin)?
Как ввести несколько переменных через пробел?

Как считать с консоли сразу несколько чисел через пробел в одной строке?
Есть два вопроса. 1)Как например считать число с консоли. Я пишу int a = Console.Read();.

Эксперт Python

Лучший ответ

Сообщение было отмечено BearStrikesBack как решение

Решение

и как результат? у тебя же по условию несколько переменных в одной строке через пробел, то есть типа 12 22 32 11 56. Тут надо читать Стринг строку и раскидывать ее на инт переменные, а потом уже сравнивать:

BufferedReader br=new BufferedReader (new InputStreamReader(System.in)); String vvod=br.readLine(); String[] tok=vvod.split(" "); for (int i=0; itok.length;i++) { // цикл перебора всех введенных переменных int x=Integer.parseInt(tok[i]); // тут сравниваем х с нужной переменной и делаем что нам нужно }

Спасибо. Понятно. Есть еще два небольших вопроса.

1) Можно ли как-то автоматически посчитать количество переменных, которые были введены? То есть при вводе 12 22 32 11 56, какой-то другой переменной будет присвоено значение 6 и т.д.
2) У меня есть какая-то введенная переменная. Мне нужно проверить условие «больше или равно 2Х». С наименьшего введенного в массив значения (могут идти как угодно, не ранжированы) начинается проверка условия, до удовлетворения условия или окончания массива. При удовлетворении условия, дальше переменные массива сравниваются с переменной, которая удовлетворила условию.

Пример. Предположим у меня есть переменая Х = 6. Массив переменных из: 12 22 32 11 56. Сначала берется значение 11, которое не удовлетворяет условию. Затем 12 — удовлетворяет. Теперь идет сравнение не с 6, а с 12, то есть первой наименьшей переменной из массива, которая удовлетворяет условию с Х. 22 — нет. 32 — да. 56 — нет. В итоге выводится количество исходов, когда есть успех. В данном случае — 2.

Эксперт Python

0) Ок, я дошел до следующего шага. Я выяснил примерно, как посчитать количество успехов.

Arrays.sort(x); int matches = 0; for(int i = 0; i  x.length; i++) { if(x[i] >= 2*y) { matches++; y = x[i]; } System.out.println(matches);

В итоге выводится массив строк с количество успехов для каждого(i-го) теста:
0
1
1
2
2

Мне же нужно вывести только максимальное значение. Как это сделать? Есть две проблемы:
1) С помощью данного кода, данные, которые вводит пользователь через пробел, преобразуются в массив строк (Strings[]).

BufferedReader br=new BufferedReader (new InputStreamReader(System.in)); String vvod=br.readLine(); String[] tok=vvod.split(" "); for (int i=0; itok.length;i++) { // цикл перебора всех введенных переменных int x = Integer.parseInt(tok[i]); // тут сравниваем х с нужной переменной и делаем что нам нужно }

Попытки использовать это в шаге 0 проваливаются, т.к. я не могу сравнить/использовать переменные типа int, String, String[] одновременно. Может кто-то с этим помочь? Нужен переход от шага 1 к шагу 0. То есть вместо X (в шаге 0) должны использоваться переменные из введенной пользователем строки, которые разделены пробелом. Я пробовал операторы Integer.parseInt для строк/приведения переменных к одному виду, но почему-то не получается.
2) Как в шаге 0, вывести только максимальное значение. Я нашел отдельные способы для строки int переменных, и отдельно для String, но т.к. у меня массив строк, то Eclipse почему-то ругается.

Источник

Java ввод значений через пробел

Наиболее простой способ взаимодействия с пользователем представляет консоль: мы можем выводить на консоль некоторую информацию или, наоборот, считывать с консоли некоторые данные. Для взаимодействия с консолью в Java применяется класс System , а его функциональность собственно обеспечивает консольный ввод и вывод.

Вывод на консоль

Для создания потока вывода в класс System определен объект out . В этом объекте определен метод println , который позволяет вывести на консоль некоторое значение с последующим переводом курсора консоли на следующую строку. Например:

В метод println передается любое значение, как правило, строка, которое надо вывести на консоль. И в данном случае мы получим следующий вывод:

При необходимости можно и не переводить курсор на следующую строку. В этом случае можно использовать метод System.out.print() , который аналогичен println за тем исключением, что не осуществляет перевода на следующую строку.

Консольный вывод данной программы:

Но с помощью метода System.out.print также можно осуществить перевод каретки на следующую строку. Для этого надо использовать escape-последовательность \n:

System.out.print("Hello world \n");

Нередко необходимо подставлять в строку какие-нибудь данные. Например, у нас есть два числа, и мы хотим вывести их значения на экран. В этом случае мы можем, например, написать так:

public class Program < public static void main(String[] args) < int x=5; int y=6; System.out.println("x=" + x + "; y console"> 
x=5; y=6

Но в Java есть также функция для форматированного вывода, унаследованная от языка С: System.out.printf() . С ее помощью мы можем переписать предыдущий пример следующим образом:

int x=5; int y=6; System.out.printf("x=%d; y=%d \n", x, y);

В данном случае символы %d обозначают спецификатор, вместо которого подставляет один из аргументов. Спецификаторов и соответствующих им аргументов может быть множество. В данном случае у нас только два аргумента, поэтому вместо первого %d подставляет значение переменной x, а вместо второго - значение переменной y. Сама буква d означает, что данный спецификатор будет использоваться для вывода целочисленных значений.

Кроме спецификатора %d мы можем использовать еще ряд спецификаторов для других типов данных:

  • %x : для вывода шестнадцатеричных чисел
  • %f : для вывода чисел с плавающей точкой
  • %e : для вывода чисел в экспоненциальной форме, например, 1.3e+01
  • %c : для вывода одиночного символа
  • %s : для вывода строковых значений

При выводе чисел с плавающей точкой мы можем указать количество знаков после запятой, для этого используем спецификатор на %.2f , где .2 указывает, что после запятой будет два знака. В итоге мы получим следующий вывод:

Name: Tom Age: 30 Height: 1,70

Ввод с консоли

Для получения ввода с консоли в классе System определен объект in . Однако непосредственно через объект System.in не очень удобно работать, поэтому, как правило, используют класс Scanner , который, в свою очередь использует System.in . Например, напишем маленькую программу, которая осуществляет ввод чисел:

import java.util.Scanner; public class Program < public static void main(String[] args) < Scanner in = new Scanner(System.in); System.out.print("Input a number: "); int num = in.nextInt(); System.out.printf("Your number: %d \n", num); in.close(); >>

Так как класс Scanner находится в пакете java.util , то мы вначале его импортируем с помощью инструкции import java.util.Scanner .

Для создания самого объекта Scanner в его конструктор передается объект System.in . После этого мы можем получать вводимые значения. Например, в данном случае вначале выводим приглашение к вводу и затем получаем вводимое число в переменную num.

Чтобы получить введенное число, используется метод in.nextInt(); , который возвращает введенное с клавиатуры целочисленное значение.

Input a number: 5 Your number: 5

Класс Scanner имеет еще ряд методов, которые позволяют получить введенные пользователем значения:

  • next() : считывает введенную строку до первого пробела
  • nextLine() : считывает всю введенную строку
  • nextInt() : считывает введенное число int
  • nextDouble() : считывает введенное число double
  • nextBoolean() : считывает значение boolean
  • nextByte() : считывает введенное число byte
  • nextFloat() : считывает введенное число float
  • nextShort() : считывает введенное число short

То есть для ввода значений каждого примитивного типа в классе Scanner определен свой метод.

Например, создадим программу для ввода информации о человеке:

import java.util.Scanner; public class Program < public static void main(String[] args) < Scanner in = new Scanner(System.in); System.out.print("Input name: "); String name = in.nextLine(); System.out.print("Input age: "); int age = in.nextInt(); System.out.print("Input height: "); float height = in.nextFloat(); System.out.printf("Name: %s Age: %d Height: %.2f \n", name, age, height); in.close(); >>

Здесь последовательно вводятся данные типов String, int, float и потом все введенные данные вместе выводятся на консоль. Пример работы программы:

Input name: Tom Input age: 34 Input height: 1,7 Name: Tom Age: 34 Height: 1,70

Обратите внимание, что для ввода значения типа float (то же самое относится к типу double) применяется число "1,7", где разделителем является запятая, а не "1.7", где разделителем является точка. В данном случае все зависит от текущей языковой локализации системы. В моем случае русскоязычная локализация, соответственно вводить необходимо числа, где разделителем является запятая. То же самое касается многих других локализаций, например, немецкой, французской и т.д., где применяется запятая.

Источник

Java ввод значений через пробел

Хочу ввести три числа через пробел и присвоить их трем разным переменным. Подскажите как это сделать или где посмотреть пример.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ Написал программу по считыванию трех чисел и определению образуют ли они геометрическую прогрессию. Все работает, кроме чисел 0.1 0.01 и 0.001. donald knut Помощь студентам 3 06.12.2019 13:33
Написать перегружены функции для поиска среднего геометрического двух, трех действительных чисел и в одномерном массиве действительных чисел jul1a_B Помощь студентам 0 01.04.2018 16:44
Если сумма трех попарно различных действительных чисел х, у, z меньше единицы, то наименьшее из этих трех чисел заменить полусуммой двух других [Delphi] Поиск ошибок в программе student_23 Помощь студентам 1 26.01.2017 17:47
Составьте программу,заменяющую меньшее из трех данных чисел произведением этих чисел Делька Помощь студентам 1 24.09.2015 17:21
Как организовать ввод чисел в строку через пробел hoop Помощь студентам 0 16.10.2011 15:44

Источник

Оцените статью