Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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_Trim - Fatal编程技术网

Java 从字符串中的数字中删除前导零

Java 从字符串中的数字中删除前导零,java,string,trim,Java,String,Trim,我想修剪这根绳子 “0000819780” 我怎样才能得到“819780”部分 我可以用我的方式来做,只是好奇有没有“优雅”或“正确”的方式来做这件事。备选方案: while(str.length() >= 1 && str.charAt(0) == '0') str = str.substring(1); 使用Apache Commons类: 例如: StringUtils.stripStart("0000819780", "0"); //should retu

我想修剪这根绳子

“0000819780”

我怎样才能得到“819780”部分

我可以用我的方式来做,只是好奇有没有“优雅”或“正确”的方式来做这件事。

备选方案:

while(str.length() >= 1 && str.charAt(0) == '0')
   str = str.substring(1);
使用Apache Commons类:

例如:

StringUtils.stripStart("0000819780", "0");  //should return "819780" 
我希望这能奏效:

try {
   int i = Integer.parseInt(yourString);
   System.out.println(i);
} catch(NumberFormatException e) {
   // the string is not a number
}

如果输入总是一个数字,并且只想删除开头的零,只需将其解析为整数。如果您希望它是字符串格式,请将其重新解析

String a = "0000819780";
System.out.println(Long.parseLong(a));
检查是否有正在运行的代码


如果它可以有数字以外的值,则需要捕获
NumberFormatException

有许多方法可以从
字符串中删除前导零;一种方法是,从左到右迭代
字符串
,在最后一个字符的下一个字符处停止(这样就不会擦除最后一个数字),如果遇到非零字符,则停止并调用
字符串。子字符串(int)
,如

String str = "0000819780";
for (int i = 0, length = str.length() - 1; i < length; i++) {
    if (str.charAt(i) != '0') {
        str = str.substring(i);
        break;
    }
}
System.out.println(str);
int v = Integer.parseInt(str);
System.out.println(v);

一种优雅的纯java方式就是
“0000819780”.replaceFirst(^0+(?!$),”)
Double abc=Double.parseDouble(“00346632”)


字符串xyz=String.format(“%.0f”,abc)

您想对
819780
部分做什么?对于“0000000”,您的方式返回什么?空字符串或“0”?字符串输入总是一个数字吗?我的方法是创建两个变量,例如a,b。a用于跟踪第一个字符。b代表下一个字符。然后我检查b和a是否不一样,然后我得到变量的其余部分。谢天谢地,你记错了。它只删除
字符串开头和结尾的空白。好的,谢谢。一个简单的while循环就可以了。如果需要的话,可以使用int-to-string。这将为输入“0000”返回一个空字符串。可以使用
Long
。不是所有的十位数整数都适合
Integer
@Thilo,谢谢你指出这一点。我已经更新了答案。
int v = Integer.parseInt(str);
System.out.println(v);