【问题标题】:Remove leading zeros from a number in a string从字符串中的数字中删除前导零
【发布时间】:2016-04-06 03:12:20
【问题描述】:

我想修剪这个字符串。

“0000819780”

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

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

【问题讨论】:

  • 你想用819780 部分做什么?
  • “0000000”的返回方式是什么?空字符串还是“0”?
  • 输入的字符串总是数字吗?
  • 我的方法是创建两个变量,例如。甲,乙。 a 用于跟踪第一个字符。 b 用于下一个字符。然后我检查b是否与a不同,然后我得到其余的变量。谢谢大家

标签: java string trim


【解决方案1】:

我希望这可行:

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

【讨论】:

  • 如果需要,然后 int 为字符串。
【解决方案2】:

您可以通过多种方式从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 like

int v = Integer.parseInt(str);
System.out.println(v);

【讨论】:

    【解决方案3】:

    替代方案:

    使用 Apache Commons StringUtils 类:

    StringUtils.stripStart(String str, String stripChars);
    

    你的例子:

    StringUtils.stripStart("0000819780", "0");  //should return "819780" 
    

    【讨论】:

      【解决方案4】:

      优雅的纯java方式就是"0000819780".replaceFirst("^0+(?!$)", "")

      【讨论】:

      • 这将为输入“0000”返回一个空字符串。
      【解决方案5】:

      如果输入总是一个数字,并且您只想删除开头的零,只需将其解析为整数。如果你想要它的字符串格式,把它解析回来。

      String a = "0000819780";
      System.out.println(Long.parseLong(a));
      

      检查https://ideone.com/7NMxbE 以获取正在运行的代码。

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

      【讨论】:

      • 也许使用Long。并非所有十位整数都适合Integer
      • @Thilo,感谢您指出这一点。我已经更新了答案。
      【解决方案6】:
      while(str.length() >= 1 && str.charAt(0) == '0')
         str = str.substring(1);
      

      【讨论】:

      • 很遗憾,您记错了。它只删除String 开头和结尾的空格。
      • 好的,谢谢。那么一个简单的while循环应该可以解决问题。
      【解决方案7】:

      双 abc = Double.parseDouble("00346632");

      String xyz = String.format("%.0f", abc);

      【讨论】:

        猜你喜欢
        • 2011-04-09
        • 1970-01-01
        • 2014-04-12
        • 2014-08-09
        • 1970-01-01
        • 1970-01-01
        • 2019-10-20
        • 2014-06-25
        • 1970-01-01
        相关资源
        最近更新 更多