文字の置換
はじめに
replaceメソッド
public String replace( char old, char new )
・指定した文字を他の文字に置換します。 パラメータ old : 変更前の文字 new : 変更後の文字 戻り値 置換後の文字列
Javaソースコード
StringReplace1.java
001 002 003 004 005 006 007 008 009 010 011 012 013
class StringReplace1 { public static void main( String[] args ) { // 文字列を作成 String strOld = "Java Programs"; // 文字'a'を'A'に置換した文字列をStrNewに代入 String strNew = strOld.replace( 'a', 'A' ); // 結果を表示 System.out.println( "置換前:" + strOld ); System.out.println( "置換後:" + strNew ); } }
コンパイル ソースコードが「ANSI」の場合
C:\talavax\javasample>javac -encoding sjis StringReplace1.java
コンパイル ソースコードが「UTF-8」の場合
C:\talavax\javasample>javac StringReplace1.java
実行
C:\talavax\javasample>java StringReplace1
実行結果
置換前:Java Programs 置換後:JAvA ProgrAms
これは置換前の文字列と置換後の文字列をコンソール出力したものです。置換前の文字'a'が、'A'に変更されていることが確認できます。また、replaceメソッド実行後に置換前の文字列strOldが変更されていないことが分かります。
文字列(String)は、複数の文字(char)が集まって出来ているデータです。Stringをchar配列に格納した後、その配列の値を置換し、再びStringに戻すことでString.replaceと同じ動作になります。
Javaソースコード
StringReplace2.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035
class StringReplace2 { // 置換メソッド private static String replace( char oldChar, char newChar, String strOld ) { // 文字列をcharの配列に変換 char[] chaNew = strOld.toCharArray(); // 文字列の長さを取得 int len = chaNew.length; // 文字の置換 for ( int i = 0; i < len; i++ ) { if ( oldChar ==chaNew[ i ] ) { chaNew[ i ] = newChar; } } // charの配列chaNewで作成したStringを戻す return new String( chaNew ); } // メイン public static void main( String[] args ) { // 文字列を作成 String strOld = "Java Programs"; // 文字'a'を'A'に置換した文字列をStrNewに代入 String strNew = replace( 'a', 'A', strOld ); // 結果を表示 System.out.println( "置換前:" + strOld ); System.out.println( "置換後:" + strNew ); } }
コンパイル ソースコードが「ANSI」の場合
C:\talavax\javasample>javac -encoding sjis StringReplace2.java
コンパイル ソースコードが「UTF-8」の場合
C:\talavax\javasample>javac StringReplace2.java
実行
C:\talavax\javasample>java StringReplace2
実行結果
置換前:Java Programs 置換後:JAvA ProgrAms
replaceメソッドと同じ結果が出力されています。
002 003 004
// 置換メソッド private static String replace( char oldChar, char newChar, String strOld ) {
005 006
// 文字列をcharの配列に変換 char[] chaNew = strOld.toCharArray();
toUpperCaseメソッド
char[] toCharArray( String str )
・Stringをchar配列に格納します。 パラメータ 文字列 戻り値 文字(char)の配列
008 009
// 文字列の長さを取得 int len = chaNew.length;
011 012 013 014 015 016
// 文字の置換 for ( int i = 0; i < len; i++ ) { if ( oldChar ==chaNew[ i ] ) { chaNew[ i ] = newChar; } }
018 019
// charの配列chaNewで作成したStringを戻す return new String( chaNew );
以上です。