替换字符串中的术语

时间:2013-06-10 16:44:39

标签: java string

我有一个字符串,其中包含一大堆“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()
}

2 个答案:

答案 0 :(得分:2)

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

b2.write(genes.replaceAll("RSP\\d+", "'$0'"));

答案 1 :(得分:0)

尝试类似的东西:

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

更简洁的方法是创建StringBufferStringBuilder并在其中执行字符串更改:

StringBuffer sb = new StringBuffer();
sb.append("'").append(genes).insert(7, "'");
b2.write(sb.toString());