gpt4 book ai didi

java - 在句子数组中查找特定单词并返回包含该单词的句子

转载 作者:行者123 更新时间:2023-12-02 08:40:24 25 4
gpt4 key购买 nike

输入是字符串数组,如下所示,

示例日志行:001 555 3334523 AppName 2341 这是一条消息。001 1224 3334524443 AppSecond 2341 这是一条消息 blah 341""-*。022201 55555 3333334523 AppThird 2341 这是其他消息。0301 533555 3334523 AppName 2341 这是另一条消息。

我需要打印其中包含AppName的所有行。

这是我尝试过的。

  public static void findArrayString(String[] input, String item)
{
for(int i = 0; i < input.length; i++)
{

List<String> chr = new ArrayList<>();
chr = Arrays.asList(input[i]);

if(chr.get(i).contains(item))
{
System.out.println(input[i]);
}

}
}

public static void main(String[] args)
{
String[] str = {"001 555 3334523 AppName 2341 This is a message.",
"001 1224 3334524443 AppSecond 2341 This is a message blah 341-*.",
"022201 55555 3333334523 AppThird 2341 This is some other message.",
"0301 533555 3334523 AppName 2341 This is another message."};

findArrayString(str,"AppName");

}
}

My output is :

001 555 3334523 AppName 2341 This is a message.
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
at java.base/java.util.Arrays$ArrayList.get(Arrays.java:4351)
at Solution.findArrayString(Solution.java:31)
at Solution.main(Solution.java:47)

谁能告诉我哪里出错了?

最佳答案

  List<String> chr = new ArrayList<>();
chr = Arrays.asList(input[i]);

创建一个包含单个元素的列表。但后来

if(chr.get(i).contains(item))

尝试查找 chr 的第 i 个元素。由于只有一个元素,因此当 i > 0 时会引发异常。

不需要中间列表 - 在循环中尝试类似的操作:

  if(input[i].contains(item))
{
System.out.println(input[i]);
}

关于java - 在句子数组中查找特定单词并返回包含该单词的句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61417865/

25 4 0
文章推荐: java - 如何将 Set 转换为 Set