Java:获取输入字符串并更改格式

时间:2014-11-21 14:50:41

标签: 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。我希望在此之前和之后放置一个零01,10

3)如果我得到这种格式的字符串11,1。我希望在最后一个之后加一个零,如11,10

任何帮助都将受到高度赞赏,在此先感谢。

4 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

将数字输入函数,并获得所需的字符串结果。

    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];

}

但它仅适用于上述格式。

答案 2 :(得分:0)

如果你的目标是打印这些字符串,你可以使用格式方法,以及前导和尾随零。

https://docs.oracle.com/javase/tutorial/java/data/numberformat.html

答案 3 :(得分:0)

Object[] splitted = input.split(",");
System.out.println(String.format("%2s,%-2s", splitted).replace(' ','0'));