【Java】文字列の先頭ゼロ(先行ゼロ)を削除するプログラムの書き方
この記事では、Javaで文字列の先頭にあるゼロ(先行ゼロ)を削除する方法について解説します。先頭にゼロが並んだ文字列は、シンプルな反復処理と置換処理を組み合わせることで、簡単に取り除くことができます。
以下に具体的な実行例を示します。
入力:
Input string: 00000445566
期待される出力:
Result: 445566
アルゴリズム
ステップ1 - 処理を開始する ステップ2 - 文字列型変数 input_string と StringBuffer オブジェクト string_buffer を宣言する ステップ3 - 値を定義する ステップ4 - whileループで文字列の各文字を先頭から順に走査し、replace() メソッドを使って先頭のゼロを ""(空文字列)に置き換える ステップ5 - 結果を表示する ステップ6 - 処理を終了する
例1:mainメソッドにすべての処理を記述する場合
ここでは、すべての処理を main メソッドの中にまとめて記述しています。
import java.util.Arrays;
import java.util.List;
public class RemoveZero {
public static void main (String[] args) {
System.out.println("必要なパッケージがインポートされました");
String input_string = "00000445566";
System.out.println("\n定義された文字列: " + input_string);
int i = 0;
while (i < input_string.length() && input_string.charAt(i) == '0')
i++;
StringBuffer string_buffer = new StringBuffer(input_string);
string_buffer.replace(0, i, "");
input_string = string_buffer.toString();
System.out.println(input_string);
}
}
出力
必要なパッケージがインポートされました 定義された文字列: 00000445566 445566
例2:オブジェクト指向スタイルでメソッドに分割する場合
ここでは、先頭ゼロを削除する処理を独立したメソッドとしてカプセル化し、オブジェクト指向プログラミングの形式で実装しています。このように分割することで、コードの再利用性が高まります。
import java.util.Arrays;
import java.util.List;
public class RemoveZero {
public static String remove_zero(String input_string) {
int i = 0;
while (i < input_string.length() && input_string.charAt(i) == '0')
i++;
StringBuffer string_buffer = new StringBuffer(input_string);
string_buffer.replace(0, i, "");
return string_buffer.toString();
}
public static void main (String[] args) {
System.out.println("必要なパッケージがインポートされました");
String input_string = "00000445566";
System.out.println("\n定義された文字列: " + input_string);
input_string = remove_zero(input_string);
System.out.println(input_string);
}
}
出力
必要なパッケージがインポートされました 定義された文字列: 00000445566 445566
補足:より簡潔に書ける代替手法
上記のループ処理以外にも、先頭ゼロを削除する方法はいくつかあります。用途に応じて使い分けるとよいでしょう。
1. 正規表現を使う方法
String result = input_string.replaceAll("^0+", "");
「^0+」は「文字列の先頭に連続するゼロ」を表す正規表現です。これを空文字列に置き換えることで、わずか一行で処理が完結します。最も簡潔な記述方法です。
2. substring() を使う方法
int index = 0;
while (index < input_string.length() && input_string.charAt(index) == '0') {
index++;
}
String result = input_string.substring(index);
先頭から順に走査して、ゼロ以外の文字が最初に現れる位置を特定し、その位置以降の部分文字列を切り出すシンプルな手法です。中間オブジェクトを作らずに済むため効率的です。
まとめ
Javaで文字列の先頭ゼロを削除する基本は、「whileループで先頭のゼロの個数を数え、StringBuffer の replace() メソッドで置き換える」という流れです。処理をメソッドとして分離すれば再利用性が向上し、正規表現を活用すればコードを大幅に簡潔にできます。可読性・パフォーマンス・保守性のバランスを考慮して、プロジェクトに適した方法を選択してください。
-
Pythonで文字列の先頭にゼロを追加する方法|format()とrjust()の使い方
Pythonでは、データを見やすく整形したり、固定桁数の値を計算の入力として扱いたい場合などに、文字列の先頭へゼロ(先行ゼロ/ゼロパディング)を付け加えたいことがあります。本記事では、そのような場面で役立つ代表的な2つの方法「format()」と「rjust()」を、具体的なコード例とともに解説します。format()メソッドを使う方法まずはformat()関数を使う方法です。ここではpandasのDataFrameを用意し、ゼロを追加したい列に対してformat関数を適用します。lambda式を組み合わせることで、列内のすべての要素に同じ処理を繰り返し適用できます。コード例import pa
-
PythonでIPアドレスの先頭ゼロを削除する方法を解説
このチュートリアルでは、IPアドレスから先頭の余分なゼロ(先行ゼロ)を削除するPythonプログラムを作成します。具体的には、255.001.040.001 のようなIPアドレスを 255.1.40.1 の形式に変換する処理を実装していきます。 処理の流れ 以下の手順に沿ってプログラムを組み立てます。 対象となるIPアドレスを文字列として初期化する split() 関数を使い、ピリオド(.)でIPアドレスを分割する 分割した各部分を int 型に変換する(数値化することで先頭のゼロが自動的に除去される) 結合できるように、各部分を再び str 型に戻す join() メソッドですべての部分を