文字列中の文字列を任意の文字列に変換する
文字列の中身をある特定の文字列で置き換えたい場合がありますね。"ABC"→"EFG"とか・・・
普通の言語であれば何なく出来そうなのですが、Javaには簡単なReplaceメソッドがありません。(涙)
SrringクラスのReplaceはなんとChar置き換えなのです。(置き換え対象が1文字のみ)
で、"ABC"→"EFG"とやる為には、こんなことしなければならないのです。
/*********************************************************************************************************/
/**
* 文字列中の文字列を任意の文字列に変換する
* @param firstString String 文字列;
* @param taisyoString String 対象文字列;
* @param henkanString String 変換文字列;
* @return afterString String 変換後の文字列;
*/
public static String isReplace(String firstString ,String taisyoString,String henkanString) throws Exception
{
try{
//文字列がnullの場合、そのまま返す
if(firstString == null){
return firstString;
}
//文字列が""の場合、そのまま返す
if(firstString.equals("")){
return firstString;
}
//対象文字列がnullの場合、そのまま返す
if(taisyoString == null){
return firstString;
}
//対象文字列が""の場合、そのまま返す
if(taisyoString.equals("")){
return firstString;
}
//文字列の整形を行う
String afterString = "";
//対象文字列を判断しCRLFなどの改行コードを考慮してインプリメントするポインタ数を制御する。
int plusPoint = taisyoString.length();
int startPoint = 0;
int endPoint = firstString.indexOf(taisyoString, startPoint);
//文字列に対象文字列がない場合、そのままの文字列を戻す
//文字列に対象文字列がある間、以下の処理を繰り返す
while (endPoint != -1){
//文字列から対象文字列を元に検索行い変換文字列に置換する。
afterString = afterString + firstString .substring(startPoint, endPoint) + henkanString;
startPoint = endPoint + plusPoint;
endPoint = firstString .indexOf(taisyoString, startPoint);
}
afterString = afterString + firstString .substring(startPoint);
return afterString;
}catch(Exception ex){
throw ex;
}
}
/**********************************************************************************************/