0

これは文字列の一部です

test="some text" test2="othertext"

同じ形式の類似したテキストがさらに多く含まれています。各「ステートメント」は空のスペースで区切られています 名前(test、test2)で検索し、その値(「」の間のもの)を置き換える方法は? Javaで

十分に明確かどうかはわかりませんが、他に説明する方法がわかりません

「test」を検索して、その内容を別のものに置き換えたい

test=" some text " test2="othertext" を別のものに置き換えます

編集:これはファイルの内容です

  test="some text" test2="othertext"

そのファイルの内容を文字列で読み取ります

今、私はいくつかのテキストを別のものに置き換えたい

一部のテキストは静的ではなく、何でもかまいません

4

5 に答える 5

2

3 つのタイプと 4 つのバリアントがある Stringのメソッドを使用できます。replace()

  • revStr.replace(oldChar, newChar)
  • revStr.replace(target, replacement)
  • revStr.replaceAll(regex, replacement)
  • revStr.replaceFirst(regex, replacement)

例えば:

String myString = "Here is the home of the home of the Stars";
myString = myString.replace("home","heaven");

///////////////////// 編集部分 ////////////////////////// ///////////

String s = "The quick brown fox test =\"jumped over\" the \"lazy\" dog";
String lastStr = new String();
String t = new String();

Pattern pat = Pattern.compile("test\\s*=\\s*\".*\"");
Matcher mat = pat.matcher(s);

        while (mat.find()) {

            // arL.add(mat.group());
            lastStr = mat.group();

        }

Pattern pat1 = Pattern.compile("\".*\"");
        Matcher mat1 = pat1.matcher(lastStr);

        while (mat1.find()) {

            t = mat.replaceAll("test=" + "\"Hello\"");

        }

        System.out.println(t);
于 2012-11-10T12:35:48.553 に答える
1

私はこれをテストしていませんが、動作するはずです:

String mFileContents;
private void replaceValue(String name, String newValue) {
    int nameIndex = mFileContents.indexOf(name);
    int equalSignIndex = mFileContents.indexOf("=", nameIndex);
    int oldValueIndex = equalSignIndex + 2;
    int oldValueLength = mFileContents.indexOf("\"", oldValueIndex);
    String oldValue = mFileContents.substring(oldValueIndex, oldValueLength);

    String firstHalf = mFileContents.substring(0, oldValueIndex -1);
    String secondHalf = mFileContents.substring(oldValueIndex);
    secondHalf.replaceFirst(oldValue, newValue);

    mFileContents = firstHalf + secondHalf;
}
于 2012-11-10T12:43:15.563 に答える
1

それで、「テスト」のすべてのインスタンスを別のものに置き換えたいですか?

文字列名が myString だとしましょう:

myString = myString.replace("test","something else");

これはあなたがしようとしていることですか?

于 2012-11-10T12:05:25.840 に答える
1

ファイルから文字列の形式でデータを取得するように求めていると思いますが、文字列は、

文字列 s = "My name="sahil" and my company="microsoft", また、私は country="india" に住んでいます".

ここで、「sahil」を「mahajan」に、「microsoft」を「google」に置き換えます。

この機能を実装するために文字列メソッドを試してみましたが、関連する結果は見つかりませんでした。しかし、いくつかの方法を提供できます。regionMatches , indexOf("name="")を使用できます. しかし、これらの関数はsahil (仮定) がどこにあるかを見つけるのに役立ちます. しかし、ここでの replcae 関数は、文字シーケンスを置き換えるため、動作が困難です。正確な文字列を知っています。

ここで、文字列メソッドを試してみてください。それは役立つかもしれません。

于 2012-11-10T12:14:48.063 に答える
0
String a = "some text";
    a = a.replace("text", "inserted value");
    System.out.print(a);

これを試して

于 2012-11-10T12:04:04.303 に答える