2016-05-27 7 views
0

私は自分のJavaアプリケーション内のある場所で立ち往生しています。 シナリオは、私は、ユーザーが?xはピーターを参照し、それを交換しなければならないことを意味Javaで自動的に検索して置換する方法

jogging(peter) 

のようにテキストボックスに何かを経由して入力します

jogging(?x) 

下回るなど、データベース内の文字列を持っているということです。 私が検索し学んだのは、正規表現を使ってジョギング(___)の類似性を見つけて、空白をxまたはalanにする必要があるということです。最初に疑問符があるかどうかを調べなければなりません。疑問符がない場合は、string.replaceall関数を使用して置き換える必要があります。

私は正しい方向に向いているかどうか、もしそうでなければ他の方法があれば教えてください。キーイベントを入力して

+1

あなたは '?x'を他の文字列に置き換えるだけですか?ごめんなさい、あなたの質問は私には分かりません。交換する必要がある他のものを持つための変更はありますか? –

+0

質問は正確には何ですか? 'Jogging()'というパターンを持つすべての名前を取得しますか? 'replaceAll'とは何が関係していますか? – MaxG

+0

@Shahensha Khan、あなたは単純なfind( "ジョギング")を使用してインデックスを取得することができます。インデックス+長さ( "ジョギング(")を開始インデックスとして使用し、 ")"をエンドインデックスとして使用します。あなたが望んでいた。 –

答えて

0

OK、みんな、そうでないかもしれない最良の方法が、最も簡単な方法を。

String in_db;//assume it swimming(?x) 
String user="swimming(duck)"; 

//next splitting it at the (which will seperate the before and after (in the string and save into array carrying first part in array[0] and rest in the array[1]. 
String in_dp_parts[]=in_db.split("\\("); 
String user_parts[]=user.split("\\("); 
// next match if the first parts of the two arrays are same then assign the rest of the first array to second one. 
if(user_parts[0].equals(in_db_parts(0))) 
{ 
    in_db[1]=user[1];//assign the user provided value to in_db ?x 
} 

上記のコードは例です。必要に応じて調整する。

0

てみ列

replace(CharSequence target, CharSequence replacement); 

方法は、私は確かにあなたの質問を理解していないですが、これはあなたがそこにあるかどうかを確認する必要がある最初のトリック を行う可能性があります

+0

ターゲットと置き換えは知られていません。 –

0

を行いますあなたの文字列で?

String fromDB="swimming(?x)"; 
if(fromDB.indexof('?')>0){ 
    //a ? is found 
    String userInput="swimming(name); 
    //check if "verb" is the same eg swimming 
    if(fromDB.substring(0,"(").equals(userInput.substring(0,"(")){ 
      //both strings are equal before the (
      //if fromDB string has ?x in it, will be replaces by the substring of userInfo that is between the() 
      fromDB.replace("?x",userInput.substring(a.indexOf("("),a.indexOf(")")-1); 
    } 
} 

免責事項は、それをテストしていないが、動作するはずです。

+0

は、やってみる。 –

+0

次の行にある場合 if(fromDB.substring(0、 "(")。equals(userInput.substring(0、 "(")){ 整数の代わりに "("、私もindexof "(") "のインデックスを取得する(しかし、それは文字列をintに変換することはできないと言う)int xにindexof("( ")を代入しようとしたが同じエラー –

+0

@ShahenshaKhanを' '' '' itに変更する –

0

あなたは使用することができます: -

String str = "jogging(?x)"; 
String str2 = str.replaceAll("(\\??x)", "peater"); 

プット外となります: - 私はそれを行っている

jogging(peater) 
+0

を追加しましたが、私はそれらを置き換える前に見つける必要がある答えの上でウルの視線を教えてください。ジョギング(?x)とinoputがジョギング(alan)している場合は?x = alan –

関連する問題