Вывод целочисленного числа в формате 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));
    }
}
→ Ссылка