我正在进行项目,我需要将每行的某些部分从第一个文本文件复制到另一个文本。在第一个文本中,每个数据由拆分器--@
(我使用过)分隔。
我想获得实际4个部分的前两部分共3个分割器Ex:
Hello--@StackOverflow--@BMWCar--@Bye.
我只想获取前两部分.ie。
Hello--@StackOverflow
从第一个文本文件的所有行到第二个文本文件。我已经尝试了一切,但无法让它发挥作用。请帮我解决这个问题。 :)
答案 0 :(得分:0)
如果你期望用破折号命名,在我看来最好用的是String.split:
String test = "Hel-lo--@StackOverflow--@BMWCar--@Bye";
String[] sp = test.split("--@");
for(String name : Arrays.copyOfRange(sp, 0, 2))
{
System.out.println(name);
}
答案 1 :(得分:0)
对于您阅读的每一行,请执行以下操作:
String[] sp = line.split("--@",2);
String result = sp[0]+"--@"+sp[1];
答案 2 :(得分:0)
我迟到了,但是下面的代码也会有效:
String str = "Hello--@StackOverflow--@BMWCar--@Bye.";
String strResult = str.split("(?<!\\G\\w+)(?:--@)")[0];
System.out.println(strResult);
\G
是上一场比赛,(?<!regex)
是负面的后卫。
<强> [更新] 强>
在您的情况下,我们可以使用以下代码吗?解决方案基于您提供的文件
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class Test{
public static void main (String[] args) throws IOException
{
BufferedReader in = new BufferedReader(new FileReader("abc.txt"));
String line;
while((line = in.readLine()) != null)
{
System.out.println(line.substring(0,line.lastIndexOf("--@")));
}
in.close();
}
}
答案 3 :(得分:-1)
首先,要获取文本文件中的所有行,请尝试使用while循环。当您从一个文件读入时,输出到第二个文件。根据条件分割每一行。
String inLine = in.nextLine();
String[] parts = inLine.split("--@");
String toWrite = parts[0] + " " + parts[1];
outLine.write(toWrite);
应该很容易搞清楚。