Как вывести цифры числа в java?
Нужна помощь. Задача следующая: Нужно ввести любое число, например 123 и нужно вывести на экран 1, 2, 3 через цикл while Пишу программу — выводит 3 2 1. но не 1 2 3. Весь день ломаю голову непонимаю. Помгите.
import java.util.Scanner; public class ExersiseChapter15 < public static Scanner reader = new Scanner (System.in); public static void main(String[] args) < System.out.print("Введите число: "); int a = reader.nextInt(); int b = 0; while (a >0) < b = a % 10; System.out.print(b + " "); a /= 10; >> >
Отслеживать
1,183 2 2 золотых знака 14 14 серебряных знаков 19 19 бронзовых знаков
задан 11 янв 2021 в 20:21
39 5 5 бронзовых знаков
Покажите свой код
11 янв 2021 в 20:21
import java.util.Scanner; public class ExersiseChapter15 < public static Scanner reader = new Scanner (System.in); public static void main(String[] args) < System.out.print("Введите число: "); int a = reader.nextInt(); int b = 0; while (a >0) < b = a % 10; System.out.print(b + " "); a /= 10; >> >
11 янв 2021 в 20:23
Поместите код в тело вопроса нажав «Править» под ним
11 янв 2021 в 20:24
Я бы перевёл число в строку и выводил бы символы строки и не парился бы со взятием остатка
11 янв 2021 в 20:27
@Drseal90 никак, даже наоборот: весь курс на стеке в один день задает один и тот же далеко не оригинальный вопрос, который является домашним заданием. вроде как в одном экземпляре достаточно.
11 янв 2021 в 21:18
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
ArrayList digits = new ArrayList<>(); while (a > 0) < b = a % 10; digits.add(b); a /= 10; >for (int i = digits.size() - 1; i >= 0; i--)
Отслеживать
ответ дан 11 янв 2021 в 20:29
user176262 user176262
Игорь не хватает запятых
11 янв 2021 в 20:33
вывести на экран 1, 2, 3
11 янв 2021 в 20:37
Вот так попробуйте
import java.util.Scanner; public class ExersiseChapter15 < public static Scanner reader = new Scanner (System.in); public static void main(String[] args) < System.out.print("Введите число: "); int a = reader.nextInt(); int b = 0; String result =""; while (a >0) < b = a % 10; result = b.toString() + result !="" ? ", "+result: result; a /= 10; >System.out.print(result); > >
Отслеживать
ответ дан 11 янв 2021 в 20:32
Aziz Umarov Aziz Umarov
22.5k 2 2 золотых знака 10 10 серебряных знаков 33 33 бронзовых знака
Есть ли какой то готовый метод который 3 2 1 превращает в 1 2 3?
11 янв 2021 в 20:37
Есть только он по ходу обучения. reverse можно посмотреть. Но в вашем примере вы выводить остаток. А нужно сформировать результат потом выводить
11 янв 2021 в 20:38
Потому что вы вычисляет остаток от деления. Их нужно для начала все получить затем собрать как нужно и выводить.
11 янв 2021 в 20:41
Если обязательно надо использовать цикл while:
String[] array; try (Scanner sc = new Scanner(System.in)) < array = String.valueOf(sc.nextInt()).split(""); >int i = 0; while (i
Если while не обязателен, то можно inline:
try (Scanner sc = new Scanner(System.in)) < Arrays.asList(String.valueOf(sc.nextInt()).split("")).forEach(e ->System.out.print(e + ", ")); >
Как убрать последнюю запятую и пробел — придумайте сами. К принципиальному решению задачи это не относится.
Как вывести два числа в java
Для вывода двух чисел в Java можно воспользоваться методом System.out.println() . Например:
int a = 5; int b = 10; System.out.println(a + " and " + b); // => 5 and 10
Как выводить числа в java
Для вывода данных в консоль в Java используется метод System.out.println() . Например, чтобы вывести число в консоль, нужно написать следующий код:
int x = 10; System.out.println(x); // => 10
Форматируем вывод чисел в Java
В этом уроке мы поговорим о формате вывода чисел в Java. Научимся выводить числа с заданной точностью.
Методы printf и format
Пакет java.io содержит класс PrintStream, который содержит эти два метода, эти методы можно использовать вместо print и println. Объект System.out, который вы уже использовали — это объект PrintStream, поэтому вы можете вызывать методы PrintStream используя System.out. Например:
System.out.format(. );
Синтаксис методов одинаков:
public PrintStream format(String format, Object. args)
где format — это строка которая определяет шаблон, согласно которому будет происходить форматирование, args — это список переменных, для печати по заданному шаблону. Простой пример:
System.out.format("The value of " + "the float variable is " + "%f, while the value of the " + "integer variable is %d, " + "and the string is %s", floatVar, intVar, stringVar);
Строка format содержит обычный текст и специальные форматирующие символы. Эти символы начинаются со знака процента (%) и заканчиваются конвертером — символом, который определяет тип переменной для форматирования. Пример:
int i = 461012; System.out.format("The value of i is: %d%n", i);
Спецификатор %d определяет одну десятичную целую переменную. %n — переход на новую линию. Данный пример выведет:
The value of i is: 461012
Пример
Следующая таблица содержит некоторые флаги, которые используются в программе ниже.
| Конвертер | Флаг | Описание |
|---|---|---|
| d | Десятичное целое. | |
| f | Float. | |
| n | Символ новой строки в зависимости от платформы, на которой запущена программа. Вместо \n лучше использовать %n. | |
| tB | Дата и время — полное название месяца в зависимости от языка. | |
| td, te | Дата и время — 2 цифры дня месяца. td — с ведущими нулями, te — без. | |
| ty, tY | Дата и время — ty = год из 2х цифр, tY = год из 4х цифр. | |
| tl | Дата и время — часы в 12 часовом формате. | |
| tM | Дата и время — минуты из 2х цифр с ведущими нулями. | |
| tp | Дата и время — am/pm в зависимости от языка(в нижнем регистре). | |
| tm | Дата и время — месяц — 2 цифры с ведущими нулями. | |
| tD | Дата и время — дата в формате %tm%td%ty | |
| 08 | Восемь символов с ведущими нулями при необходимости. | |
| + | Включить знак (положительный или отрицательный). | |
| — | По левому краю | |
| .3 | Три символа после запятой | |
| 10.3 | Десять символов до запятой и три — после. |
Примеры использования этих конвертеров вы можете увидеть далее. Эта программа показывает различные варианты использования метода format. Вывод показан в комментариях.
import java.util.Calendar; import java.util.Locale; public class TestFormat < public static void main(String[] args) < long n = 461012; System.out.format("%d%n", n); // -->"461012" System.out.format("%08d%n", n); // --> "00461012" System.out.format("%+8d%n", n); // --> " +461012" System.out.format("%,8d%n", n); // --> " 461,012" System.out.format("%+,8d%n%n", n); // --> "+461,012" double pi = Math.PI; System.out.format("%f%n", pi); // --> "3.141593" System.out.format("%.3f%n", pi); // --> "3.142" System.out.format("%10.3f%n", pi); // --> " 3.142" System.out.format("%-10.3f%n", pi); // --> "3.142" System.out.format(Locale.FRANCE, "%-10.4f%n%n", pi); // --> "3,1416" Calendar c = Calendar.getInstance(); System.out.format("%tB %te, %tY%n", c, c, c); // --> "May 29, 2006" System.out.format("%tl:%tM %tp%n", c, c, c); // --> "2:34 am" System.out.format("%tD%n", c); // --> "05/29/06" > >
Класс DecimalFormat
Вы можете использовать класс DecimalFormat для контроля вывода нулей в десятичных числах. Пример:
import java.text.*; public class DecimalFormatDemo < static public void customFormat(String pattern, double value ) < DecimalFormat myFormatter = new DecimalFormat(pattern); String output = myFormatter.format(value); System.out.println(value + " " + pattern + " " + output); >static public void main(String[] args) < customFormat("###,###.###", 123456.789); customFormat("###.##", 123456.789); customFormat("000000.000", 123.78); customFormat("$###,###.###", 12345.67); >>
Данная программа выведет:
123456.789 ###,###.### 123,456.789 123456.789 ###.## 123456.79 123.78 000000.000 000123.780 12345.67 $###,###.### $12,345.67
