Javaで正規表現を使って文字列の先頭ゼロを削除する方法
JavaのStringクラスが提供するreplaceAll()メソッドは、「正規表現パターン」と「置換後の文字列」の2つの引数を受け取り、パターンにマッチした部分をすべて指定した文字列に置き換えます。
文字列の先頭にあるゼロ(先行ゼロ)にマッチさせるための正規表現は、次のとおりです。
^0+(?!$)
このパターンの意味は以下のとおりです。
- ^0+:文字列の先頭から始まる1個以上の「0」にマッチします。
- (?!$):否定先読みと呼ばれる構文で、文字列の末尾ではない位置であることを保証します。これにより、「0000」のようにすべてがゼロの文字列の場合でも、最後の1個のゼロが残り、空文字列になることを防ぎます。
先頭のゼロを削除するには、この正規表現を第1引数に、空文字列 "" を第2引数として replaceAll() メソッドに渡します。
サンプルコード
次の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 = LeadingZeroesRE.removeLeadingZeroes(num);
System.out.println(result);
}
}
実行結果
Enter an integer: 000012336000 12336000
このように、入力された「000012336000」から先頭のゼロだけが取り除かれ、「12336000」と出力されます。数値の途中や末尾にあるゼロはそのまま保持される点にも注目してください。
-
【Java】replaceAll()メソッドと正規表現で文字列からHTMLタグを削除する方法
JavaにおけるStringクラスはfinal修飾子が付いた不変(イミュータブル)なクラスです。これは、一度生成されたStringオブジェクト自体は変更できないことを意味しますが、変数が参照するオブジェクトを別のインスタンスに差し替えることは可能です。 文字列からHTMLタグを取り除くには、StringクラスのreplaceAll()メソッドを使用します。このメソッドに正規表現を指定することで、「<」と「>」で囲まれたタグ部分を空文字列に置き換えられます。処理後の文字列は、プレーンなテキストとして返されます。 replaceAll()メソッドの構文 public String re
-
Javaの正規表現で文字列から数値を抽出する方法
Javaの正規表現(Regular Expression)を使えば、文字列の中から数値だけを簡単に取り出すことができます。この記事では、実際のコード例とともに、さまざまなパターンでの数値抽出の方法を解説します。文字列を解析し、必要な情報を抜き出すスキルは、テスターにとって欠かせない能力の一つです。特にAPIテストでは、JSONやXML形式のレスポンスを解析する場面が多く、正規表現の知識が大いに役立ちます。以下では、Javaの正規表現を使って文字列から数字・数値を抽出する具体的な例を紹介します。文字列からすべての数値を抽出するimport java.util.regex.Matcher; imp