Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:数字到六位数的字符串操作_Java_String_Format_Character - Fatal编程技术网

Java:数字到六位数的字符串操作

Java:数字到六位数的字符串操作,java,string,format,character,Java,String,Format,Character,案例1如果编号为123,结果:000123 案例2如果编号为00123123结果:123123 案例3如果编号为10231239,则结果为:10231239 案例4如果编号为01231239结果:1239 我所尝试的是贝娄,但需要更好的解决方案 public static void main(String[] args) { String number = "0023213"; number = number.trim(); String result; if(n

案例1如果编号为123,结果:000123
案例2如果编号为00123123结果:123123
案例3如果编号为10231239,则结果为:10231239
案例4如果编号为01231239结果:1239

我所尝试的是贝娄,但需要更好的解决方案

public static void main(String[] args)
{
    String number = "0023213";
    number = number.trim();
    String result;
    if(number.length() < 6)
    {
        result = String.format("%06d", Integer.parseInt(number));
        System.out.println(result);
    }
    else if (number.trim().length()>6)
    {
        result = number.replaceFirst("^0+(?!$)", "");
        result = String.format("%06d", Integer.parseInt(result));
        System.out.println(result);
    }
}
publicstaticvoidmain(字符串[]args)
{
字符串编号=“0023213”;
number=number.trim();
字符串结果;
if(number.length()<6)
{
结果=String.format(“%06d”,Integer.parseInt(number));
系统输出打印项次(结果);
}
否则如果(number.trim().length()>6)
{
结果=number.replaceFirst(“^0+(?!$)”,”);
结果=String.format(“%06d”,Integer.parseInt(结果));
系统输出打印项次(结果);
}
}

这一部分适用于您(其他部分的代码)。只要前导零后面有6位数字,就删除前导零

public static void main(String[] args) {
    String s = "0023123";
    System.out.println(s.replaceAll("^0+(?=\\d{6})", ""));
}
O/p

样本输入:00000110023123


示例输出:110023123

只需使用Apache公共语言库:

String str = "1123456";
str = StringUtils.leftPad(StringUtils.stripStart(str, "0"), 6, "0");

我认为这更具可读性

所以你要做的就是删除开头的0?这不仅仅是删除开头的0,还要通过添加前导0来保持它的六位数,如果数字像1231235,那么它必须是相同的,如果数字像01123123,那么结果必须是1123123
String str = "1123456";
str = StringUtils.leftPad(StringUtils.stripStart(str, "0"), 6, "0");