gpt4 book ai didi

Java:如果包含特定单词,则打印一次

转载 作者:行者123 更新时间:2023-11-30 06:57:37 24 4
gpt4 key购买 nike

我想接收一个文本文件(由 args[0] 给出)并逐行检查 args[0] 之后所有参数给出的单词,如果包含所述单词,则用星号打印每一行。

我很确定我现在拥有的代码足以检查一个单词,但我不确定如何检查一行是否包含多个单词(由 args 给出)并且只打印如果是,则行一次。

我认为 for 循环可能会起作用,但如果它恰好包含多个单词,它会多次打印一行。

import java.util.*;
import java.io.*;

public class WordFinder
{
public static void main(String args[])
{
File file = new File(args[0]);
Scanner in = null;
try
{
in = new Scanner(file);
while(in.hasNext())
{
String line = in.nextLine();
if (line.contains(args[1]))
{
System.out.println("* " + line);
}
else
{
System.out.println(" " + line);
}
}
}
catch (FileNotFoundException e)
{
System.out.println("Cannot find " + args[0])
return;
}
}
}

最佳答案

要么你想检查所有(和)

            boolean foundAll = true;
for (int i = 1; i < args.length && foundAll; ++i) {
foundAll = foundAll && line.contains(args[i]);
}
if (foundAll)
{
System.out.println("* " + line);
}
else
{
System.out.println(" " + line);
}

或至少匹配(或)

            boolean foundAny = false;
for (int i = 1; i < args.length; ++i) {
foundAny = line.contains(args[i]);
if (foundAny) break;
}
if (foundAny)
{
System.out.println("* " + line);
}
else
{
System.out.println(" " + line);
}

关于Java:如果包含特定单词,则打印一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33360691/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com