我正在使用来自数据目录中文件的数据作为输入来创建javaFX项目。我想将每个文件名用作String变量。我已经加载了数据:
File path = new File("data");
File [] files = path.listFiles();
for (int i = 0; i < files.length; i++){
if (files[i].isFile()){
items.loadData(files[i].toString());
}
toString现在为data / fileName1.csv。我只想保存使用fileName1。我试过在loadData()方法中使用split()方法,如下所示:
fileName= fileName.split("/")[1]; //should trim to fileName1.csv, works
fileName= fileName.split("\.")[0]; //should trim to fileName1, error
第二个split()的错误是“无效的转义序列(有效的是\ b \ t \ n \ f \ r \“ \'\)”。
我尝试了多种方法来解决此问题。有没有更好/更有效的方法来完成此任务?
编辑:将修剪更改为拆分
答案 0 :(得分:5)
您需要转义反斜杠。尝试\\.
但是对于这样的操作,您可能应该使用Path函数,例如:https://docs.oracle.com/javase/7/docs/api/java/nio/file/Path.html#getFileName()
答案 1 :(得分:1)
您可以使用以下代码,仅在一行中获取文件名。
files[i].substring(files[i].indexOf("/") + 1);
答案 2 :(得分:0)
您可以执行以下操作:
String fileName = "data/fileName1.csv";
String [] arr = fileName.split("(/|\\.)");
fileName = arr[1];