修剪文件名以用作字符串的正确方法?

时间:2018-10-08 16:39:42

标签: java javafx

我正在使用来自数据目录中文件的数据作为输入来创建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 \“ \'\)”。

我尝试了多种方法来解决此问题。有没有更好/更有效的方法来完成此任务?

编辑:将修剪更改为拆分

3 个答案:

答案 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];