0

这是字符串的一部分

test="some text" test2="othertext"

它包含更多具有相同格式的相似文本。每个“语句”由空格分隔如何按名称搜索(test,test2)并替换其值(“”之间的东西)?在java中

我不知道它是否足够清楚,但我不知道如何解释它

我想搜索“测试”并将其内容替换为其他内容

将 test=" some text " test2="othertext" 替换为其他内容

编辑:这是文件的内容

  test="some text" test2="othertext"

我在字符串中读取了该文件的内容

现在我想用别的东西替换一些文本

有些文本不是静态的,它可以是任何东西

4

5 回答 5

2

您可以使用 replace() String 的方法,它有 3 种类型和 4 种变体:

  • 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

所以你想用其他东西替换“测试”的每个实例?

假设字符串名称是 myString:

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

这是你想要做的吗?

于 2012-11-10T12:05:25.840 回答
1

我认为您要求您以字符串的形式从文件中获取数据,假设您的字符串是,

String s = "My name="sahil" 和 my company="microsoft",我也住在 country="india""。

现在你想用“mahajan”替换“sahil”,用“google”替换“microsoft”。

我尝试使用字符串方法来实现此功能,但没有找到相关的结果。但我可以为您提供一些方法。您可以使用regionMatchesindexOf("name="")。但是这些函数将帮助您找到sahil(假设)的位置。但是这里的 replcae 函数很难工作,因为它替换了字符序列,您应该知道确切的字符序列。

现在您可以尝试使用字符串方法。它可以提供帮助。

于 2012-11-10T12:14:48.063 回答
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 回答
0
String a = "some text";
    a = a.replace("text", "inserted value");
    System.out.print(a);

试试这个

于 2012-11-10T12:04:04.303 回答