2014-11-21 4 views
-3

я получаю входную строку, содержащую цифры с запятой (,), разделенные как эти форматыJava: получить входную строку и изменить формат

1) X,X

2) X,XX

3) XX,X

Мой желаемый формат: XX,XX.

Я хочу, чтобы получить входную строку, как в форматах выше 1,2,3, она должна быть отформатирована как мой желаемый формат XX,XX.

Например,

1) Если я получаю строку в этом формате 1,12. Я хочу поставить ноль до 1, как это 01,12.

2) Если я получаю строку в этом формате 1,1. Я хочу поставить ноль до и после 1, например 01,10.

3) Если я получаю строку в этом формате 11,1. Я хочу поставить ноль после последнего 1, как это 11,10.

Любая помощь будет высоко оценена, спасибо заранее.

+0

после чего вы пробовали до сих пор –

+1

возможный дубликат [Java формате десятичного String] (http://stackoverflow.com/questions/433958/java-decimal-string-format) – Joeblade

+0

Вы хотите просто отобразить эту «String» или также использовать ее внутри переменной? – Eypros

ответ

0

Вы можете использовать регулярное выражение для форматирования в вашем конкретном шаблоне с помощью Lookaround

(?=^\d,\d\d$)|(?<=^\d\d,\d$)|(?<=^\d,\d$)|(?=^\d,\d$) 

Online demo

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

Пример кода:

String regexPattern="(?=^\\d,\\d\\d$)|(?<=^\\d\\d,\\d$)|(?<=^\\d,\\d$)|(?=^\\d,\\d$)"; 
System.out.println("1,12".replaceAll(regexPattern, "0")); 
System.out.println("1,1".replaceAll(regexPattern, "0")); 
System.out.println("11,1".replaceAll(regexPattern, "0")); 

выход:

01,12 
01,10 
11,10 
0

поток в ваш номер к функции, и получить желаемый результат String.

public static String convert(String s){ 
    String arr[] = s.split(","); 

    if(arr[0].length()!=2){ 
     arr[0] = "0"+arr[0]; 
    } 

    if(arr[1].length()!=2){ 
     arr[1] = arr[1]+"0"; 
    } 

    return arr[0]+","+arr[1]; 

} 

Но он работает только в формате, описанном выше.

0
Object[] splitted = input.split(","); 
System.out.println(String.format("%2s,%-2s", splitted).replace(' ','0')); 
Смежные вопросы