gpt4 book ai didi

java - 数组列表和文件

转载 作者:行者123 更新时间:2023-12-01 18:54:59 24 4
gpt4 key购买 nike

我需要做的是获取用户搜索文件的路径,并获取用户的一组字符,这些字符是要搜索的文件名的一部分。找到文件后,它将显示所有位置,包括子文件夹以及完整的文件名。我所做的是获取给定路径中的所有文件并将它们放入 File[] 数组中使用ListFiles()。获取所有文件的名称并将它们保存到数组列表中。创建另一个数组列表并仅保存文件名,不包含前一个数组列表的扩展名。然后使用用户输入的字符集与此数组列表中的每个文件名进行比较。为了测试这么多是否有效,我将其打印出来,但它打印了所有文件名,而不仅仅是与用户输入的字符集匹配的文件名.这是我的代码:

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

public class FileSearch
{
public static void main(String args[])
{
try
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println(" 1.Enter the path to search:");
String str = br.readLine();
System.out.println(" 2.Enter some characters of the filename:");
String str1 = br.readLine();

File files = new File(str);

File[] f = files.listFiles();

List<String> li = new ArrayList<String>();
List<String> li1 = new ArrayList<String>();

for(int i=0;i<f.length;i++)
{
if(f[i].isFile())
{
li.add(f[i].getName());
}
}

for(int i=0;i<li.size();i++)
{
int j = li.get(i).lastIndexOf('.');
li1.add((j>-1)?li.get(i).substring(0, j):li.get(i));
}

for(int i=0;i<li1.size();i++)
{
if(li1.get(i).contains(str1));
{
System.out.println(li1.get(i));
}
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}

最佳答案

你的代码绝对没问题。以下陈述是问题的根本原因。

if(li1.get(i).contains(str1));
{
System.out.println(li1.get(i));
}

如果您清楚地观察到,您在 if 条件后使用了 ; 。删除分号,代码就可以正常工作。

关于java - 数组列表和文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14322551/

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