java - 如何分割这个字符串

标签 java string split

我有以下字符串,需要将其按 "_Folder43\" 分割,以便我只获取数组第二个元素中的图像名称。

E:\generated\_Folder43\image4565.jpg

到目前为止我有以下代码

  String[] tokens = imageLoc.split("_Folder43\"); //backslash escapes the double quotes!
  imageLoc = tokens[1];
  System.out.println(imageLoc); 

上面代码中的第一行是问题所在,因为其中的反斜杠转义了双引号,因此不允许结束字符串。

所需输出image4565.jpg

最佳答案

不要使用字符串操作来处理文件路径。

如果您使用的是 Java 6 或更早版本,请改用 File API:

package com.example.file;

import java.io.File;

public class FileExample2 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        String path = "E:\\generated\\_Folder43\\image4565.jpg";
        File f = new File(path);
        System.out.println(f.getName());
    }
}

如果您使用的是 Java 7 或更高版本,请使用 Path API。不幸的是,我没有方便的 Java 7 来测试它,但我认为它会是这样的(如果有错误,请随时纠正我):

public class PathExample {

    /**
     * @param args
     */
    public static void main(String[] args) {
        String path = "E:\\generated\\_Folder43\\image4565.jpg";
        Path p = Paths.get(path);
        System.out.println(p.getFileName().toString());
    }
}

关于java - 如何分割这个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16197202/

相关文章:

java - android studio中每次点击按钮都会增加数字

arrays - 如何将包含字符 "\n"的多行字符串拆分为 bash 中的字符串数组?

c - 将文件中的行添加到 C 中的数组

split - Apache Camel 将列表拆分为更大的部分

java - LWJGL 使用纹理时颜色困惑 + 经常禁用纹理时 FPS 较低

java - Datanucleus - DBCP2 集成警告 - PoolableConnectionFactory 未链接到池

java - 难以在分隔符处分割字符串并保留它

bash - 当每行存在多个匹配项时,如何打印模式的行号和起始位置?

java - 在Java中删除部分字符串

php 只获取数组中的值