java从字符串中的数字中删除前导零 2 月 Questions & Answers 11050 我想修剪这根绳子 “0000819780” 我怎样才能得到“819780”部分 我可以用我的方式来做,只是好奇有没有“优雅”或“正确”的方式来做这件事
# 1 楼答案 如果输入总是一个数字,并且只想删除开头的零,只需将其解析为整数即可。如果想要字符串格式,请将其重新解析 String a = "0000819780"; System.out.println(Long.parseLong(a)); 检查https://ideone.com/7NMxbE是否有正在运行的代码 如果它可以有数字以外的值,则需要捕捉NumberFormatException
# 2 楼答案 备选方案: 使用Apache Commons StringUtils类: StringUtils.stripStart(String str, String stripChars); 举个例子: StringUtils.stripStart("0000819780", "0"); //should return "819780"
# 3 楼答案 我希望这能奏效: try { int i = Integer.parseInt(yourString); System.out.println(i); } catch(NumberFormatException e) { // the string is not a number }
# 6 楼答案 有很多方法可以从^{中删除前导零;一种方法是,如果遇到非零字符,从左到右迭代String,在最后一个字符的旁边停止(这样就不会擦除最后一个数字),然后调用String.substring(int)like 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);
# 1 楼答案
如果输入总是一个数字,并且只想删除开头的零,只需将其解析为整数即可。如果想要字符串格式,请将其重新解析
检查https://ideone.com/7NMxbE是否有正在运行的代码
如果它可以有数字以外的值,则需要捕捉
NumberFormatException
# 2 楼答案
备选方案:
使用Apache Commons StringUtils类:
举个例子:
# 3 楼答案
我希望这能奏效:
# 4 楼答案
# 5 楼答案
一种优雅的纯java方式就是
"0000819780".replaceFirst("^0+(?!$)", "")
# 6 楼答案
有很多方法可以从^{中删除前导零;一种方法是,如果遇到非零字符,从左到右迭代
String
,在最后一个字符的旁边停止(这样就不会擦除最后一个数字),然后调用String.substring(int)
like或者,解析
String
类