replaceAllだけでは、改行コード(\n)とタブコード(\t)が置換できなかった。
変換対象文字列
シミュレーション1 #Missing\nシミュレーション2 #Missing\nシミュレーション3 #Missing\n
1.replaceAllだけの場合(希望通り置換されない)
String result = "";
str.replaceAll("\\n","@");
System.out.println("\\n replase:"+str);
//この時
シミュレーション1 #Missing\nシミュレーション2 #Missing\nシミュレーション3 #Missing\n
str.replaceAll("\\t","@");
System.out.println("\\t replase:"+str);
//この時
シミュレーション1 #Missing\nシミュレーション2 #Missing\nシミュレーション3 #Missing\n
result = str;
2.PatternとMatcherクラスを利用した置換処理(成功)
String result = "";
String regex = "\\n";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(str);
str = m.replaceAll("@");
System.out.println("\\n replase:"+str);
//この時 シミュレーション1 #Missing@シミュレーション2 #Missing@シミュレーション3 #Missing@
String regex2 = "\\t";
Pattern p2 = Pattern.compile(regex2);
Matcher m2 = p2.matcher(str);
str = m2.replaceAll("@");
//この時 シミュレーション1@#Missing@シミュレーション2@#Missing@シミュレーション3@#Missing@
System.out.println("\\t replase:"+str);
result = str;
理由を後で調べておきたい。
変換対象文字列
シミュレーション1 #Missing\nシミュレーション2 #Missing\nシミュレーション3 #Missing\n
1.replaceAllだけの場合(希望通り置換されない)
String result = "";
str.replaceAll("\\n","@");
System.out.println("\\n replase:"+str);
//この時
シミュレーション1 #Missing\nシミュレーション2 #Missing\nシミュレーション3 #Missing\n
str.replaceAll("\\t","@");
System.out.println("\\t replase:"+str);
//この時
シミュレーション1 #Missing\nシミュレーション2 #Missing\nシミュレーション3 #Missing\n
result = str;
2.PatternとMatcherクラスを利用した置換処理(成功)
String result = "";
String regex = "\\n";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(str);
str = m.replaceAll("@");
System.out.println("\\n replase:"+str);
//この時 シミュレーション1 #Missing@シミュレーション2 #Missing@シミュレーション3 #Missing@
String regex2 = "\\t";
Pattern p2 = Pattern.compile(regex2);
Matcher m2 = p2.matcher(str);
str = m2.replaceAll("@");
//この時 シミュレーション1@#Missing@シミュレーション2@#Missing@シミュレーション3@#Missing@
System.out.println("\\t replase:"+str);
result = str;
理由を後で調べておきたい。
ボタン2度押し禁止で非活性の制御を実装したのだが、
非活性がされない現象がおきた。
この画面は、以下の動作をする
ボタンクリック - 非活性 - データ更新 - 画面を閉じる
よく見ると、非活性化のあとに実装した処理が終わる直前
に非活性になって画面を閉じているみたいであった。
どうも、非活性化が完了する前に次のちょっと重い処理が
実行されるのが原因のようだ。
そこで、非活性処理の直後の処理を遅延させることにした。
1.非活性化の処理を別Function化
2ボタンクリックで非活性化処理のFunction(execBtnYes())を呼び出す
3.上記のFunctionで非活性化処理後に 非活性化処理以外
になったFunction(btnYesClick)を setTimeout関数で1秒遅延させて実行
こんな感じで対応できた。
シーケンシャルで実行されるのに謎です。
ブラウザのレンダリングの仕組み・処理速度にようるのだろうか
例
setTimeout("関数", 遅延時間(ms));
function execBtnYes(){
//2度押し禁止
var elebtnYes=document.getElementById("btnYes");
elebtnYes.disabled = true;
var elebtnNo=document.getElementById("btnNo");
elebtnNo.disabled = true;
//本処理の呼び出し
setTimeout("btnYesClick()", 1000);
}
function btnYesClick(){
//本処理
//DBやEssBaseのデータ等の更新処理
}
非活性がされない現象がおきた。
この画面は、以下の動作をする
ボタンクリック - 非活性 - データ更新 - 画面を閉じる
よく見ると、非活性化のあとに実装した処理が終わる直前
に非活性になって画面を閉じているみたいであった。
どうも、非活性化が完了する前に次のちょっと重い処理が
実行されるのが原因のようだ。
そこで、非活性処理の直後の処理を遅延させることにした。
1.非活性化の処理を別Function化
2ボタンクリックで非活性化処理のFunction(execBtnYes())を呼び出す
3.上記のFunctionで非活性化処理後に 非活性化処理以外
になったFunction(btnYesClick)を setTimeout関数で1秒遅延させて実行
こんな感じで対応できた。
シーケンシャルで実行されるのに謎です。
ブラウザのレンダリングの仕組み・処理速度にようるのだろうか
例
setTimeout("関数", 遅延時間(ms));
function execBtnYes(){
//2度押し禁止
var elebtnYes=document.getElementById("btnYes");
elebtnYes.disabled = true;
var elebtnNo=document.getElementById("btnNo");
elebtnNo.disabled = true;
//本処理の呼び出し
setTimeout("btnYesClick()", 1000);
}
function btnYesClick(){
//本処理
//DBやEssBaseのデータ等の更新処理
}
