[英]Remove leading zeros from a number in a string
我想修剪这个字符串。
“0000819780”
我怎么能得到“819780”部分。
我可以用我的方式做到这一点,只是好奇有没有“优雅”或“正确”的方式来做到这一点。
替代方案:
使用Apache Commons StringUtils类:
StringUtils.stripStart(String str, String stripChars);
对于你的例子:
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
删除前导零; 一种方法,从左到右迭代String
,停在最后一个字符旁边(所以你不要删除最后一位数字)停止如果遇到非零并调用String.substring(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);
或者,解析String
类的
int v = Integer.parseInt(str);
System.out.println(v);
一个优雅的纯java方式只是"0000819780".replaceFirst("^0+(?!$)", "")
如果输入始终是一个数字,并且您只想删除起始零,则只需将其解析为整数。 如果你想以字符串格式,解析它。
String a = "0000819780";
System.out.println(Long.parseLong(a));
检查https://ideone.com/7NMxbE以获取正在运行的代码。
如果它可以具有除数字之外的值,则需要捕获NumberFormatException
while(str.length() >= 1 && str.charAt(0) == '0')
str = str.substring(1);
Double abc = Double.parseDouble(“00346632”);
String xyz = String.format(“%。0f”,abc);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.