/*****************************************************
* フォーム入力値の変換
* Copyright(C) 2001 A-tak, Japan
*
* @since 2001.05.26
* @author A-tak
*
****************************************************/
package net.dynodns.atak.web;
import java.lang.String;
/**
* フォーム入力値変換クラス
* フォームから受け取った値で"や'などの不適正な値を修正する
* Copyright(C) 2001 A-tak, Japan
*
* @see
* @version 1.0
* @since 2001.05.26
* @author A-tak
*/
public class StringReplace {
public StringReplace(){
}
/**
* 特殊文字の変換
* フォームからの値をDB登録に適正な形に変換する
* @param String value 変換元文字列
* @return String 処理結果
*/
public String convInput(String value){
value = replacer(value, "\\", "\\\\");
value = replacer(value, "\'", "\\\'");
value = replacer(value, "\"", "\\\"");
return value;
}
/**
* 特殊文字の変換
* 与えられた文字列から@Aを探し@Bに置き換える
* @param String value 文字列
* @param String target 検索文字
* @param String conv 置換文字列
* @return String 処理結果
*/
private String replacer(String value, String target, String conv) {
int newpos = 0;
for (;;) {
String front; //対象前方文字
String back; //対象後方文字
int pos = value.indexOf(target, newpos); //置換対象検索
if(pos==-1) break;
front = value.substring(0,pos); //対象より前の文字を切り取り
back = value.substring(pos + target.length()); //対象より後の文字を切り取り
value = front + conv + back; //結合
newpos = pos + conv.length(); //検索カーソルを移動
}
return value;
}
}