0

他のアイテムの中でも、X が 0 ~ 9 の範囲の数字である "RSPXXXX" の束全体を含む文字列があります。ここで、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"));

ただし、やや明確な方法は、StringBufferorを作成し、StringBuilderその中で文字列の変更を実行することです。

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