Java 查找部分文本并写入另一个文件

Java 查找部分文本并写入另一个文件,java,text,Java,Text,我找不到文本的一部分。我尝试使用indexOf,但没有任何帮助,因为它只是将所有内容复制到新文件中。 我想用“.com.jp”复制不同的行,并将它们写入一个新文件 这是我的密码 if(string.indexOf(".com.jp") > -1) { bufferedWriter.write(string); bufferedWriter.write("\t"); System.out.println(string); } 让我们看看,基本的想法是这样的 字符串始

我找不到文本的一部分。我尝试使用indexOf,但没有任何帮助,因为它只是将所有内容复制到新文件中。 我想用“.com.jp”复制不同的行,并将它们写入一个新文件 这是我的密码

if(string.indexOf(".com.jp") > -1)
{
    bufferedWriter.write(string);
    bufferedWriter.write("\t");
    System.out.println(string);
}

让我们看看,基本的想法是这样的

字符串始终包含所有内容

  bufferedWriter.write(string);
您在代码中的什么地方更改了
字符串
变量

当您转到下一行时,需要一些循环来清除变量。

您可以使用a按URL读取
字符串
URL,并筛选所需的URL:

final Scanner scan = new Scanner(string);

scan.useDelimiter("\t");

while (scan.hasNext()) {
    final String url = scan.next();
    if (url.contains(".com.jp")) {
        bufferedWriter.write(url);
        bufferedWriter.write("\t");
        System.out.println(url);
    }
}
或者,如果您不想使用
扫描仪
,也可以
split()
字符串

while((string = bufferedReader.readLine()) != null) {
    for (String url: string.split("\t")) {
        if(url.contains(".com.jp")) {
            bufferedWriter.write(url);
            bufferedWriter.write("\t");
            System.out.println(url);
        }
    }
    bufferedWriter.write("\n");
}

为此目的使用java将使其变得复杂。 一个简单的unix comand应该可以做到这一点:

grep -i '.com.jp' filename.txt > newfile.txt

请让我们看更多的代码。只是环绕,而不是包线String line=null;虽然((line=bufferedReader.readLine())!=null){尝试使用.contains,但它仍在复制整个内容。。例如,我有“.com.jp”和“.com.tw”,“.com.tw”仍然是copied@user3402193你能在问题中添加一些你所拥有的和你想要的样本数据吗?因为我提供的代码应该过滤掉所有不包含“.com.jp”的行(但是你的数据可能是由制表符而不是换行符分隔的,或者类似的东西)。抱歉,如果我不清楚我的问题。我的数据来自一个文本文件,它包括许多具有不同结尾的URL,如.com.sg和.com.tw。我必须从文本文件中特别获取.com.jp并将其写入一个新的文本文件。@user340293文本文件中的URL是如何分隔的?用空格分隔的?制表?换行?什么其他?没有?我使用bufferedreader而不是扫描仪..我如何更改那里的frmo?String line=null;//这里的bufferedreader和bufferedwriter代码,而((line=bufferedreader.readLine())!=null){if(String.contains(“.com.jp”){bufferedwriter.write(String);bufferedwriter.write(“\t”);System.out.println(string);}string line=null;while((line=bufferedReader.readLine())!=null){