Javaプログラミング学習サイト ゆるゆるプログラミング

2020/08/30 公開

・文字の置換

ここでは、char型の置換前の文字と置換後の文字を指定し、文字列を置換する方法を説明します。具体的なプログラムの動作は以下のようになります。

置換前の文字列を'a'とし、置換後の文字列を'A'としたとき、文字列"Java"は、文字列"JAvA"になります。

この置換には、String.replaceメソッドを使います。

replaceメソッド

public String replace( char old, char new )
■指定した文字を他の文字に置換します。

  パラメータ 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と同じ動作になります。

以下が、そのJavaソースコードです。

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メソッド

char[] toCharArray( String str )
■Stringをchar配列に格納します。

  パラメータ 文字列

  戻り値     文字(char)の配列

008:    		// 文字列の長さを取得
009:    		int len = chaNew.length;

配列要素数int型のlenに格納しています。

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文

繰り返し処理に使用するfor文をJavaのソースコードを使って説明しています。

■新着情報

2022.07.07 外部プログラムの実行 exeファイル実行
2022.07.06 完全数 6=1+2+3

■広告

 

 

 

 

 

スッキリわかるJava入門第3版 [ 中山清喬 ]

価格:2,860円
(2021/6/18 14:32時点)
感想(6件)

 

 

Topへ