簡體   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