Java 从字符串中的数字中删除前导零
我想修剪这根绳子 “0000819780” 我怎样才能得到“819780”部分 我可以用我的方式来做,只是好奇有没有“优雅”或“正确”的方式来做这件事。备选方案: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
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);