2020/03/23 公開
・文字の置換
ここでは、char型の置換前の文字と置換後の文字を指定し、文字列を置換する方法を説明します。具体的なプログラムの動作は以下のようになります。
置換前の文字列を'a'とし、置換後の文字列を'A'としたとき、文字列"Java"は、文字列"JAvA"になります。
この置換には、String.replaceメソッドを使います。
replaceメソッド
■指定した文字を他の文字に置換します。 パラメータ old : 変更前の文字 new : 変更後の文字 戻り値 置換後の文字列
以下は、Stringクラスのreplaceメソッドを使ったJavaソースコードです。
StringReplace1.java ← クリックしてダウンロードページに移動001: class StringReplace1 { 002: public static void main( String[] args ) { 003: // 文字列を作成 004: String strOld = "Java Programs"; 005: 006: // 文字'a'を'A'に置換した文字列をStrNewに代入 007: String strNew = strOld.replace( 'a', 'A' ); 008: 009: // 結果を表示 010: System.out.println( "置換前:" + strOld ); 011: System.out.println( "置換後:" + strNew ); 012: } 013: }
StringReplace1.javaの出力結果
置換前:Java Programs 置換後:JAvA ProgrAms
これは置換前の文字列と置換後の文字列をコンソール出力したものです。置換前の文字'a'が、'A'に変更されていることが確認できます。また、replaceメソッド実行後に置換前の文字列strOldが変更されていないことが分かります。
次に、Stringクラスのreplaceメソッドを使わないで文字の置換を行う方法を説明します。
文字列(String)は、複数の文字(char)が集まって出来ているデータです。Stringをchar配列に格納した後、その配列の値を置換し、再びStringに戻すことでString.replaceと同じ動作になります。
StringReplace2.java ← クリックしてダウンロードページに移動001: class StringReplace2 { 002: // 置換メソッド 003: private static String replace( char oldChar, char newChar, String strOld ) 004: { 005: // 文字列をcharの配列に変換 006: char[] chaNew = strOld.toCharArray(); 007: 008: // 文字列の長さを取得 009: int len = chaNew.length; 010: 011: // 文字の置換 012: for ( int i = 0; i < len; i++ ) { 013: if ( oldChar ==chaNew[ i ] ) { 014: chaNew[ i ] = newChar; 015: } 016: } 017: 018: // charの配列chaNewで作成したStringを戻す 019: return new String( chaNew ); 020: } 021: 022: 023: // メイン 024: public static void main( String[] args ) { 025: // 文字列を作成 026: String strOld = "Java Programs"; 027: 028: // 文字'a'を'A'に置換した文字列をStrNewに代入 029: String strNew = replace( 'a', 'A', strOld ); 030: 031: // 結果を表示 032: System.out.println( "置換前:" + strOld ); 033: System.out.println( "置換後:" + strNew ); 034: } 035: }
StringReplace2.javaの出力結果
置換前:Java Programs 置換後:JAvA ProgrAms
replaceメソッドと同じ結果が出力されています。
002: // 置換メソッド 003: private static String replace( char oldChar, char newChar, String strOld ) 004: {
文字列を文字で置換するメソッドreplaceです。引数は、置換前の文字oldCharと置換後の文字newCharと置換する文字列strOldです。
005: // 文字列をcharの配列に変換 006: char[] chaNew = strOld.toCharArray();
文字列strOldをchar型の配列chaNewに格納しています。使用しているメソッドは、String.toCharArrayです。
toUpperCaseメソッド
■Stringをchar配列に格納します。 パラメータ 文字列 戻り値 文字(char)の配列
008: // 文字列の長さを取得 009: int len = chaNew.length;
011: // 文字の置換 012: for ( int i = 0; i < len; i++ ) { 013: if ( oldChar ==chaNew[ i ] ) { 014: chaNew[ i ] = newChar; 015: } 016: }
for文でiのループを作成し、配列chaNew[ i ]が置換前の文字oldCharと一致ときに、chaNew[ i ]に置換後の文字newCharを代入しています。
018: // charの配列chaNewで作成したStringを戻す 019: return new String( chaNew );
配列chaNewでStringを作成し、returnで戻しています。
文字の置換にはString.replaceメソッドを使うのをお奨めしますが、文字の置換のカスタマイズが必要な場合は、上記のような方法で自作することができます。参考にしてください。
以上です。
■関連コンテンツ
文字列 | 文字列について |
文字コード | 文字コードについて |
Unicode | Unicode(ユニコード) |
空文字列かを判定 | 空文字列かを判定する方法を解説 |
Javaの配列 | 同じ型の変数をまとめた配列について解説 |
![]() |
for文繰り返し処理に使用するfor文をJavaのソースコードを使って説明しています。 |
■新着情報
2022.07.07 | 外部プログラムの実行 | exeファイル実行 |
2022.07.06 | 完全数 | 6=1+2+3 |
■広告
