繁体   English   中英

从字符串的开头删除出现的 X 字符,直到在 Java 中找不到不同的字符

[英]Remove X Character occurence from Starting of string until Different Character Not found in Java

我陷入了问题,找不到解决方案,请帮我解决它。 下面是代码

String number = "000097127073653";

Boolean isOtherDigitFound = false;

int i=0;

for(int x=0 ; x<nunber.toCharArray() ; x++){

    if(number.toChatArray()[x] != 0 && !isOtherDigitFound ){
      isOtherDigitFound=true;
      i=x;
    }
}

number = number.subStr(x,number.length);

System.out.print(number);

我得到了我想要的 output,它是 97127073653 但是有一些简单的方法可以做到这一点。

我想从字符串的开头删除所有出现的 0。但不是从中间或其他地方。

示例:- 我有像 0000123400022 这样的数字,然后 output 应该像 123400022

请帮我

提前致谢

例如,上面的代码可能看起来像这样

    String number = "0000123400022";

    Boolean isOtherDigitFound = false;

    int i = 0;
    

    for (int x = 0; x < number.length(); x++) {

        if (number.charAt(x) != '0' && !isOtherDigitFound) {
            isOtherDigitFound = true;
            i = x;
            break;
        }
    }

    number = number.substring(i, number.length());

    System.out.print(number);

您可以在 Java 的String class 中使用replaceAll方法。

number = number.replaceAll("^0+", ""));

通过在replaceAll方法中添加^替换前导字符,并通过添加$替换尾随字符。 因此,如果要替换字符串的尾随 0 值,可以执行number.replaceAll("0+$", "");

现在您可以将代码重写为简单的三行

String number = "000097127073653";
number = number.replaceAll("^0+", ""));
System.out.print(number);

我会做这样的事情。 希望它很容易理解。

    public String removingLeadingZero(final String number) {
        if (StringUtils.isEmpty(number)) {
            return number;
        }
        int i = 0;
        while (number.charAt(i) == '0') { // Here'0' can be replaced with any charater you want
            i++;
        }
        return number.substring(i);
    }

如果您的字符串是常规数字(不包含任何字符或非数字值),您可以将字符串转换为 long 并返回。 这将自动删除所有起始零。

String frontTrimmed = Long.parseLong(stringValue, 10) + "";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM