我如何解决Java错误:对于类型ArrayList <string>“</string>,未定义方法toLowerCase()

时间:2012-12-18 12:24:11

标签: java file types arraylist

我正在尝试使用特定文件类型(.dbf)填充特定目录中的文件的微调器。不幸的是,我不断收到错误“类型ArrayList的方法toLowerCase()未定义”。我该如何解决?

public ArrayList<String> ReadDirectory(){
String path="./database";

File folder = new File(path);
File[] ListOfFiles = folder.listFiles();

for (int i = 0; i < ListOfFiles.length; i++){
    if (ListOfFiles[i].isFile()){
        files.add(ListOfFiles[i].getName());
        if (files.endsWith(".dbf") || files.endsWith(".DBF")){
            }
    }
}
return files;
        }


}

此行给出错误:

if (files.endsWith(".dbf") || files.endsWith(".DBF")){

文件以下列方式在脚本顶部声明:

ArrayList<String> files = new ArrayList<String>();

3 个答案:

答案 0 :(得分:6)

  

如何解决Java错误:'方法toLowerCase()未定义   对于ArrayList'

类型

我无法看到您在发布的代码中使用toLowerCase()方法。但是,我假设你试图在列表引用上调用toLowerCase()。列表没有toLowerCase()方法。字符串具有toLowerCase()方法。

你可能会这样做:

List<String> list = new ArrayList<String>();
System.out.println(list.get(0).toLowerCase()); //this is legal
System.out.println(list.toLowerCase()); //this isn't legal as there is no toLowerCase() method in list

答案 1 :(得分:0)

据我所知toLowerCase()仅为字符串对象定义,因此在迭代期间从ArrayList单字符串中获取,更改此字符串并替换ArrayList中的旧字符串

答案 2 :(得分:0)

您无法在文件上使用.endsWith()。考虑到您使用的是for循环,您应该选择files[i].endsWith()。但是,使用增强型,例如for (File currentFile : files)是一种更常见的方法。

同样适用于.toLowerCase()方法。