Java 如何制作从数组中搜索并打印整个arraybox的方法?

Java 如何制作从数组中搜索并打印整个arraybox的方法?,java,arrays,file,search,Java,Arrays,File,Search,我需要一些帮助来完成我正在编写的代码的一部分。 我做了一个方法,我认为它将我的.txt文件的每一行转换成数组中的独立元素。但是,我现在希望能够在它们中搜索并使程序打印整个元素。ie:其中一行写着:克劳,M,堪萨斯州,2012年6月 我想我能把它做成一个数组。现在,我希望能够搜索“crow”,并能够得到所有包含该单词的元素,这些元素与元素中其余字符串一起打印。 到目前为止,我掌握的代码是: System.out.println(“她的kan-du-soke-etter注册号etter-fuglet

我需要一些帮助来完成我正在编写的代码的一部分。 我做了一个方法,我认为它将我的.txt文件的每一行转换成数组中的独立元素。但是,我现在希望能够在它们中搜索并使程序打印整个元素。ie:其中一行写着:克劳,M,堪萨斯州,2012年6月 我想我能把它做成一个数组。现在,我希望能够搜索“crow”,并能够得到所有包含该单词的元素,这些元素与元素中其余字符串一起打印。 到目前为止,我掌握的代码是: System.out.println(“她的kan-du-soke-etter注册号etter-fugletype”)

试试看{
Scanner sc=新扫描仪(新文件(“fugler.txt”);
列表行=新的ArrayList();
while(sc.hasNextLine()){
line.add(sc.nextLine());
}
String[]arr=lines.toArray(新字符串[lines.size]);
}捕获(例外e){
}

除其他问题外,如果您想要阵列,您应该更换此阵列:

String[] arr = lines.toArray(new String[0]);
为此:

String[] arr = lines.toArray(new String[lines.size()]);
传入的数组是将由
toArray
填充的数组,因此它需要足够大才能容纳所有元素

如果要搜索某个值
,可以使用原始的
数组列表

要全部打印,只需循环全部打印即可:

for(String l : lines) {
   System.out.println(l);
}

除其他问题外,如果您想拥有阵列,还应替换以下内容:

String[] arr = lines.toArray(new String[0]);
为此:

String[] arr = lines.toArray(new String[lines.size()]);
传入的数组是将由
toArray
填充的数组,因此它需要足够大才能容纳所有元素

如果要搜索某个值
,可以使用原始的
数组列表

要全部打印,只需循环全部打印即可:

for(String l : lines) {
   System.out.println(l);
}

首先,不需要将行放入数组中。您已经在列表中列出了它们

您可以在它们进入时打印它们:

while (sc.hasNextLine() {
    String currentLine = sc.nextLine();
    System.out.println(currentLine);
    lines.add(currentLine);
}
或者,您可以打印列表中的所有行:

for (String line : lines) {
    System.out.println(line);
}

首先,不需要将行放入数组中。您已经在列表中列出了它们

您可以在它们进入时打印它们:

while (sc.hasNextLine() {
    String currentLine = sc.nextLine();
    System.out.println(currentLine);
    lines.add(currentLine);
}
或者,您可以打印列表中的所有行:

for (String line : lines) {
    System.out.println(line);
}

正如其他人已经指出的,您不需要将行放入数组中,因为您已经在
ArrayList
中拥有它们

如果要“搜索”行并仅打印某些行,可以使用:

试试看{
Scanner sc=新扫描仪(新文件(“fugler.txt”);
列表行=新的ArrayList();
while(sc.hasNextLine()){
line.add(sc.nextLine());
}
用于(字符串行:行){
if(line.contains(“yourSearchString”)){
系统输出打印项次(行);
}
}
}捕获(例外e){
}

正如其他人已经指出的,您不需要将行放入数组,因为您已经在
数组列表中找到了它们

如果要“搜索”行并仅打印某些行,可以使用:

试试看{
Scanner sc=新扫描仪(新文件(“fugler.txt”);
列表行=新的ArrayList();
while(sc.hasNextLine()){
line.add(sc.nextLine());
}
用于(字符串行:行){
if(line.contains(“yourSearchString”)){
系统输出打印项次(行);
}
}
}捕获(例外e){
}

一种不好的替代说法:数组中的元素。您的问题不清楚,请尝试重新措辞。请澄清“ArrayBox”是什么,以及“它们”在“我现在不想在其中搜索”的上下文中代表什么。问题非常不清楚-您需要得到什么结果,问题是什么?一种不好的替代说法:数组中的元素。您的问题不清楚,请尝试重新措辞。请澄清“ArrayBox”是什么以及“它们”在“我现在希望能够在其中搜索”的上下文中代表什么。问题非常不清楚-您需要得到什么结果以及问题是什么?如果我添加了字符串search=input.next();然后查询搜索,这将定义“yourSearchString”,这可能吗?不管怎样。成功了!你是我的救世主!非常感谢不过,这对我来说有点奇怪。它不会立即打印行,直到我输入一些其他奇怪的输入,然后它打印一行,然后在下一次输入另一行,这不一定满足要求。方法
包含
字符序列作为参数。你也可以给它一个
字符串。错误是说您正在为它提供一个
Scanner
的实例。请随意选择任何有帮助的答案,并接受解决问题的答案。
input.next()
正在等待您的输入!如果你不想让它像那样等待,你必须在你的程序中做一个逻辑循环;然后查询搜索,这将定义“yourSearchString”,这可能吗?不管怎样。成功了!你是我的救世主!非常感谢不过,这对我来说有点奇怪。它不会立即打印行,直到我输入一些其他奇怪的输入,然后它打印一行,然后在下一次输入另一行,这不一定满足要求。方法
包含
字符序列作为参数。你也可以给它一个
字符串。错误是说您正在为它提供一个
Scanner
的实例。请随意选择任何有帮助的答案,并接受解决问题的答案。
input.next()
正在等待您的输入!如果你不想让它像那样等待,你必须在你的程序中做一个逻辑循环。