我正在尝试使用特定文件类型(.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>();
答案 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()
方法。