Java 替换文本文件中出现的第二个单词

Java 替换文本文件中出现的第二个单词,java,Java,我的文本文件中有一个句子 此外,人血清能显著增强LPS诱导的DV抑制,且呈CD14依赖性,表明LPS与CD14的“结合”对诱导病毒抑制至关重要 如何将第二次出现的CD14替换为AB45并写回文本文件 对于算法本身 file.indexOf("CD14", file.indexOf("CD14")+4) 可用于定位事件(假定“文件”是包含文件所有内容的字符串)。“indexOf”的第二个参数要求一个起点。通过两次调用indexOf,您可以找到字符串的第一个实例,而不是检查跳过第一个实例的另一个实

我的文本文件中有一个句子

此外,人血清能显著增强LPS诱导的DV抑制,且呈CD14依赖性,表明LPS与CD14的“结合”对诱导病毒抑制至关重要


如何将第二次出现的CD14替换为AB45并写回文本文件

对于算法本身

file.indexOf("CD14", file.indexOf("CD14")+4)
可用于定位事件(假定“文件”是包含文件所有内容的字符串)。“indexOf”的第二个参数要求一个起点。通过两次调用indexOf,您可以找到字符串的第一个实例,而不是检查跳过第一个实例的另一个实例(+4,因为indexOf将返回字符串的开头,将跳过的字符串长度相加)。要替换字符串

int i = file.indexOf("CD14", file.indexOf("CD14")+4);
String s = file;
if(i != -1) s = file.substring(0,i) + "AD25" + file.substring(Math.min(i+4,file.length()), file.length());

如果你问如何读/写文本文件,试试谷歌。一个例子-,另一个-

解决这个问题有几种方法。一种非常简单但冗长的方法是:

public static void replaceSecondOccurence(String originalText, String replacementText) throws IOException {
    File file = new File("file.txt");
    InputStreamReader reader = new InputStreamReader(new FileInputStream(file));
    StringBuilder fileContent = new StringBuilder();
    int content;
    while ((content = reader.read()) != -1) {
        fileContent.append((char) content);
    }
    reader.close();

    int index = fileContent.lastIndexOf(originalText);
    fileContent.replace(index, index + originalText.length(), replacementText);

    OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(file));
    writer.write(fileContent.toString());
    writer.close();
}

您应该在第一个索引中添加3,而不是4。