如何在Java中从文件中拆分字符串
我在file.txt文件中有一行,如何在Java中从文件中拆分字符串,java,java-io,Java,Java Io,我在file.txt文件中有一行,|a | b | c | d |,我想提取之间的值(结果a,b,c,d) 我怎样才能做到这一点?来自 围绕给定正则表达式的匹配项拆分此字符串。 该方法的工作原理类似于使用给定表达式和零限制参数调用双参数split方法。因此,结果数组中不包括尾随的空字符串 例如,字符串“boo:and:foo”使用以下表达式生成以下结果: 正则表达式结果 :{“boo”,“and”,“foo”} o{“b”、“”、“:和:f”} 使用以下代码: String[] arr = "|
|a | b | c | d |
,我想提取
之间的值(结果a,b,c,d
)
我怎样才能做到这一点?来自
围绕给定正则表达式的匹配项拆分此字符串。
该方法的工作原理类似于使用给定表达式和零限制参数调用双参数split方法。因此,结果数组中不包括尾随的空字符串
例如,字符串“boo:and:foo”使用以下表达式生成以下结果:
正则表达式结果:{“boo”,“and”,“foo”}
o{“b”、“”、“:和:f”}
使用以下代码:
String[] arr = "|a|b|c|d|".split("\\|");
管道(|
)是正则表达式语言中的一个特殊字符(split方法将正则表达式作为参数),因此需要转义
您需要这样使用:String[]str=“|a | b | c | d |”。split(\\\\”代码>
鉴于此:
String[] str = "|a|b|c|d|".split("\\|");
for(String string : str)
System.out.println(string);
将产生:
//The first string will be empty, since your string starts with a pipe.
a
b
c
d
String[]array=filecontent.split(“|”)代码>转义只需2个反斜杠it@singhakash是的,对不起,我的错。现在已修复。请您给出您的答案,以解释此代码为什么回答此问题?代码唯一的答案是,因为它们不教解决方案。@DavidPostill谢谢,已更新
public static void main(String[] args) throws IOException {
FileReader fr = new FileReader(new File(
"file.txt"));
BufferedReader br = new BufferedReader(fr);
String st;
StringBuffer sb = new StringBuffer();
st = br.readLine();
if (st != null) {
StringTokenizer strTkn = new StringTokenizer(st, "|");
while (strTkn.hasMoreElements()) {
sb.append(strTkn.nextElement());
}
}
System.out.println(sb);
}