Java 读取文件并标识括号之间的字符串
我试图命名将出现在最后一组括号“genesym”之间的字符串。到目前为止,我正在用制表符替换每个括号的最后一个匹配项。在这些函数之间,我想将现有字符串命名为genesym 我意识到这是一个扫描器功能,但这是我知道怎么说的唯一方法Java 读取文件并标识括号之间的字符串,java,string,file,Java,String,File,我试图命名将出现在最后一组括号“genesym”之间的字符串。到目前为止,我正在用制表符替换每个括号的最后一个匹配项。在这些函数之间,我想将现有字符串命名为genesym 我意识到这是一个扫描器功能,但这是我知道怎么说的唯一方法 import java.lang.*; import java.io.*; public class TESTING { public static void main(String[] args) { try {
import java.lang.*;
import java.io.*;
public class TESTING
{
public static void main(String[] args)
{
try {
BufferedReader br = new BufferedReader(new FileReader("human.rna.fna"));
BufferedWriter bw = new BufferedWriter(new FileWriter("FormattedHumanRNA"));
String line
String genesym;
while ((line = br.readLine()) != null) {
if (line.startsWith(">")) {
// Replaces the last set of parenthesis with a tab character
int openbracket = line.lastIndexOf("(");
line = new StringBuilder(line)
.replace(openbracket, openbracket + 1, "\t")
.toString();
**genesym = br.nextString();**
// Replaces the last close parenthesis with a tab character
int closebracket = line.lastIndexOf(")");
line = new StringBuilder(line)
.replace(closebracket, closebracket + 1, "\t")
.toString();
} else {
line = line.replaceAll ("\n", "");
}
bw.write(genesym + " : " + line);
}
br.close();
bw.close();
} catch(IOException e) {
e.printStackTrace(System.err);
}
}
}
示例:(我的数据比这个大得多,大约100万行)
输入文件:
>365 (LOC1), long non-coding RNA AGCGTCT
>22 (1*split3**) (FLJ), long RNA AAAATC
>13 (RTV), RNA ATGCG
期望输出:
LOC1 : >365 LOC1 , long non-coding RNA AGCGTCT
FLJ : >22 (1*split3**) FLJ , long RNA AAAATC
RTV : >13 RTV ,RNA ATGCG
然后替换你想替换的。你的问题不清楚。可以包括正在读取的输入文件以及希望输出的内容吗?字符串genesym=line.substring(lastIndexOf(“”),lastIndexOf(“”);为什么我不能这样做?字符串genesym=line.substring(line.lastIndexOf(“(”),line.lastIndexOf(“)”);伟大的谢谢你的帮助。我很感激。
String genesym=line.substring(openbracket,closebracket);