我的文字文件中有一句话,
此外,人血清可以以 CD14 依赖性方式显着增强LPS诱导的DV抑制,表明LPS与 CD14 的“结合”对于诱导病毒抑制。
如何将第二次出现的CD14替换为AB45并回写到文本文件?
答案 0 :(得分:0)
对于算法本身,
file.indexOf("CD14", file.indexOf("CD14")+4)
可用于定位出现(假设“file”是包含文件所有内容的字符串)。 “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());
如果您正在询问如何阅读/撰写文本文件,请尝试使用Google。一个例子 - Java: How to read a text file,另一个例子 - http://www.javapractices.com/topic/TopicAction.do?Id=42
答案 1 :(得分:0)
有几种方法可以解决这个问题。一个非常简单但冗长的方法是:
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();
}