在字符串中计算前导零

时间:2017-03-10 07:32:52

标签: java

我需要在字符串中获得前导零 例子

1)s="0001254200"
  result=3
1)s="1254200"
  result=0

有没有办法在java中实现这一点。我知道我们可以改变字符串到字符数组并检查每一个。我正在寻找替代approch

3 个答案:

答案 0 :(得分:2)

您可以使用解析并将字符串转发为数字,例如 Integer.parseInt()将忽略前导零

    final String xs = "0001254200";
    int i = xs.length() - String.valueOf(Integer.parseInt(xs)).length();
    System.out.println(i);

    //Another option based on Titus comment

    i = xs.length() - xs.replaceAll("^0+", "").length();
    System.out.println(i);

答案 1 :(得分:-1)

如果你真的想要一些花哨的替代品,你可以试试这个(你至少需要Java 9):

String s = "00012345";
long count = s.chars().takeWhile(c -> c == '0').count();

答案 2 :(得分:-1)

function