2013-04-15 4 views

ответ

1

Я не думаю, что вы можете сделать это с помощью DecimalFormat, потому что ваши пробелы не являются разделителями групп или десятичных знаков.

Простой способ будет просто использовать строку:

int number = 8392472; 
String s = String.valueOf(number); 
String formatted = s.substring(0, 3) + " " 
       + s.substring(3, 5) + " " 
       + s.substring(5, 7); 
0

Я думаю, что самый простой способ для достижения этой цели, как показано ниже.

public static void main(String[] args) { 
    int number = 8392472; 
    StringBuilder sb = new StringBuilder(String.valueOf(number)) 
           .insert(3," ") 
           .insert(6," "); 
    System.out.println(sb.toString());  
} 
+0

Это немного менее эффективно, так как это потребует одновременного копирования базового массива - это, вероятно, не будет иметь заметной разницы в большинстве случаев. – assylias

+0

Любой номер телефона с ведущими 0 будет испорчен. Раньше, в США и Канаде, все коды областей начинались с цифры 2-9 и имели 0 или 1 в качестве 2-й цифры. 2-я цифровая часть больше не соответствует действительности. Я не знаю, может ли первая цифра быть 0. –

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