Вывод целочисленного числа в формате 1 111 111 111 через цикл. Java
Допустим, есть любое Int число n (отрицательное в том числе). Его надо вернуть в формате 1 111 111 в тип String. Есть ли какой-нибудь способ сделать это через цикл, но не трогая массивы ? Видел только подобные формулы на форуме, но они лишь разворачивают число. А мне надо получить мое же введенное число, но с отступами.
for (; number > 0;number /= 10){
number_create = number % 10;
}
Ответы (3 шт):
Автор решения: Дмитрий
→ Ссылка
Для этого не нужны циклы и не надо парсить число вручную. Существует способ проще:
Integer number = 123456;
NumberFormat nf = NumberFormat.getInstance();
System.out.println(nf.format(number));
Автор решения: fox
→ Ссылка
Или такой вариант
import java.text.DecimalFormat;
public class tt {
public static void customFormat(String pattern, int value) {
DecimalFormat myForm = new DecimalFormat(pattern);
String output = myForm.format(value);
System.out.println(output);
}
public static void main(String[] args) {
customFormat("###, ###, ###", 1111111);
}
}
Автор решения: nikoshi
→ Ссылка
Вот один из вариантов решения:
import java.text.DecimalFormat;
public class MyClass {
public static void main(String[] args) {
int number = 1111111;
System.out.println(new DecimalFormat("###,###").format(number).toString().replace(',',' '));
}
}
Вывод: 1 111 111
Ещё такой вариант:
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
public class NewClass {
public static void main(String[] args) {
DecimalFormat df = new DecimalFormat();
DecimalFormatSymbols symbols = DecimalFormatSymbols.getInstance();
symbols.setGroupingSeparator(' ');
df.setDecimalFormatSymbols(symbols);
int i = 1111111;
System.out.println(df.format(i));
}
}