我得到一个输入字符串,其中包含以逗号(,)分隔的数字,就像这些格式一样
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
。
任何帮助都将受到高度赞赏,在此先感谢。
答案 0 :(得分:0)
您可以使用正则表达式使用Lookaround
格式化您的特定模式(?=^\d,\d\d$)|(?<=^\d\d,\d$)|(?<=^\d,\d$)|(?=^\d,\d$)
这里我们使用了您给出的三种数据组合,空格被零替换。
示例代码:
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'));