解釋如何在 Java 中去除字串開頭的零


無論何時將整數值讀入字串,都可以使用**StringBuffer**類、正則表示式或將給定字串轉換為字元陣列來去除其開頭的零。

轉換為字元陣列

以下 Java 程式從使用者那裡讀取一個整數值到一個字串中,並透過將給定的字串轉換為字元陣列來去除其開頭的零。

示例

import java.util.Scanner;

public class LeadingZeroes {
   public static String removeLeadingZeroes(String num){
      int i=0;
      char charArray[] = num.toCharArray();
      for( ; i<= charArray.length; i++){
         if(charArray[i] != '0'){
            break;
         }
      }
      return (i == 0) ? num :num.substring(i);
   }
   public static void main(String args[]){
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter an integer: ");
      String num = sc.next();

      String result = LeadingZeroes.removeLeadingZeroes(num);
      System.out.println(result);
   }
}

輸出

Enter an integer value as a String
00126718
126718

使用 StringBuffer 類

以下 Java 程式從使用者那裡讀取一個整數值到一個字串中,並使用 StringBuffer 類去除其開頭的零。

示例

import java.util.Scanner;
public class LeadingZeroesSB {
   public static String removeLeadingZeroes(String num){
      int i=0;
      StringBuffer buffer = new StringBuffer(num);
      while(i<num.length() && num.charAt(i)=='0')
      i++;
      buffer.replace(0, i, "");
      return buffer.toString();
   }
   public static void main(String args[]){
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter an integer: ");
      String num = sc.next();

      String result = LeadingZeroesSB.removeLeadingZeroes(num);
      System.out.println(result);
   }
}

輸出

Enter an integer:
00012320002
12320002

使用正則表示式

以下 Java 程式從使用者那裡讀取一個整數值到一個字串中,並使用正則表示式去除其開頭的零。

示例

import java.util.Scanner;

public class LeadingZeroesRE {
   public static String removeLeadingZeroes(String str){
      String strPattern = "^0+(?!$)";
      str = str.replaceAll(strPattern, "");
      return str;
   }
   public static void main(String args[]){
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter an integer: ");
      String num = sc.next();

      String result = TailingZeroesRE.removeLeadingZeroes(num);
      System.out.println(result);
   }
}

輸出

Enter an integer:
000012336000
12336000

使用 apache commons 庫

將以下依賴項新增到你的 pom.xml 檔案中

<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.9</version>
</dependency>

以下 Java 程式從使用者那裡讀取一個整數值到一個字串中,並使用 StringUtils 類的**stripStart()**方法去除其開頭的零。

示例

import java.util.Scanner;
import org.apache.commons.lang3.StringUtils;

public class LeadingZeroesCommons {
   public static String removeLeadingZeroes(String str){
      str = StringUtils.stripStart(str, "0");
      return str;
   }
   public static void main(String args[]){
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter an integer: ");
      String num = sc.next();

      String result = LeadingZeroesCommons.removeLeadingZeroes(num);
      System.out.println(result);
   }
}

輸出

Enter an integer:
000125004587
125004587

更新於: 2020年6月29日

3K+ 閱讀量

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告