0

我有一个字符串,其中包含一大堆“RSPXXXX”,其中 X 是 0-9 之间的数字。现在我想用“RSPXXXX”替换 RSPXXXX。但是我很难替换添加最后的 '. 也就是说,在 R 前面添加一个 ' 很容易,但我不知道如何在最后添加另一个。我必须使用 for 或 if 循环吗?

还有其他想法吗?我附上了一个示例代码:

import java.io.*;
import java.util.Arrays;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.*;

public class Store2{
    public static void main(String[] arg) throws Exception {
        BufferedReader b1 =
            new BufferedReader(new FileReader("Reactions.csv"));
        BufferedWriter b2 =
            new BufferedWriter(new FileWriter("Store2.txt"));
        String strRead; String strWrite;
        while ((strRead=b1.readLine())!=null){
            String splitarray[] = strRead.split("\t");
            String reactions = splitarray[0];
            String genes = splitarray[7];
            b2.write("v.fx('");
            b2.write(reactions);
            b2.write("')$(");
            b2.write(genes.replace("R","'R"));
            b2.write(")=0;");
            b2.newLine();
        }
        b2.close();
    } //main()
}
4

2 回答 2

2

我认为这样的事情应该有效:

b2.write(genes.replaceAll("RSP\\d+", "'$0'"));
于 2013-06-10T16:53:52.497 回答
0

尝试这样的事情:

b2.write((genes.substring(0, 7) + "'" + genes.substring(7)).replace("R", "'R"));

不过,一种更清晰的方法是创建一个StringBufferorStringBuilder并在其中执行字符串更改:

StringBuffer sb = new StringBuffer();
sb.append("'").append(genes).insert(7, "'");
b2.write(sb.toString());
于 2013-06-10T16:53:02.727 回答