JAVA-字符串裁剪(从文件路径获取文件名)-substring

本文介绍了如何使用Java的substring方法从文件路径中提取文件名。讲解了substring的基本用法,以及辅助方法lastIndexOf和trim的功能。通过示例代码展示了如何结合这些方法处理文件路径,以供后续的文件操作使用。

JAVA-字符串裁剪(从文件路径获取文件名)-substring

前言

今天开发项目正好需要从文件路径中截取一段作为文件名,就学习了一下。

核心方法

substring

substring是String类自带的方法用于输出某字符串的子字符串

  1. stringObject.substring(start);
    将原始字符串索引(start)右侧的内容生成子字符串,并输出。
    例如:
String str = "test_12345"
String str2 = str.substring(5);

此时生成的str2是"_12345"

  1. stringObject.substring(start,stop);
    将原始字符串索引从(start)到(stop)的内容生成子字符串,并输出。
    例如:
String str = "test_12345"
String str2 = str.substring(6,9);

此时生成的str2是"123"

辅助方法

lastIndexOf

效果:可返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。(从左侧索引的是IndexOf方法)

  1. stringObject.lastIndexOf(str,index);
    index 省略时从末尾开始查询,index不省略时从index的索引开始查询。

trim

效果:删除字符串左右两侧的多余空格,但是字符串中间的空格不做处理
很简单就多不说明了。

演示代码

   /**
     * 从图片的文件路径中获取图片名字
     * @param path
     * @return
     */
    public static String getImageNameByPath(String path){

        String fName = path.trim();       //删除路径两侧多余空格
        String ImageName = fName.substring(fName.lastIndexOf("/")+1,
                                            fName.lastIndexOf("."));
        //截取最右侧斜杠之右的字段,到点为止

        return ImageName ;
    }

文字描述这样一个代码的就是先将目标字符串裁剪掉左右的空白部分(从我的逻辑设计角度,其实第一行可以省略),然后从右侧算截取出一段由字符"/'和字符"."包裹的字符串。

举例

String filePath =  “      data/my/file/myimage.png        ”
String mString = getImageNameByPath(filePath);

输入:
“ data/my/file/myimage.png ”
先变成:
“data/my/file/myimage.png”
然后变成:
“myimage”

结语

这个方法在很多需要进行文件路径和文件名处理的时候能用到,因此记录下来,方便自身查找使用。

今日是9月21日,我重新开启1000篇博客计划。加油|ू・ω・` )

在 C# 中,从字符串中提取文件路径文件名和扩展名,可以使用 `System.IO.Path` 类中的静态方法,这些方法提供了对路径字符串的解析功能。以下是具体实现方法和相关示例代码: ### 获取文件路径文件名及扩展名 #### 使用 `Path` 类的方法 `System.IO.Path` 类提供了多个静态方法来提取路径中的不同部分: - **获取文件全路径**:使用 `Path.GetFullPath(filePath)` 方法可以获取文件的完整路径- **获取文件所在目录**:使用 `Path.GetDirectoryName(filePath)` 方法可以提取文件路径中的目录部分。 - **获取文件名(包含扩展名)**:使用 `Path.GetFileName(filePath)` 方法可以提取路径中的文件名部分(包括扩展名)。 - **获取文件名(不包含扩展名)**:使用 `Path.GetFileNameWithoutExtension(filePath)` 方法可以提取文件名,不包括扩展名。 - **获取文件扩展名**:使用 `Path.GetExtension(filePath)` 方法可以提取文件的扩展名。 以下是一个完整的代码示例: ```csharp using System; using System.IO; class Program { static void Main() { string filePath = @"C:\JiYF\BenXH\BenXHCMS.xml"; Console.WriteLine("文件全路径:" + Path.GetFullPath(filePath)); Console.WriteLine("文件目录:" + Path.GetDirectoryName(filePath)); Console.WriteLine("文件名称(含扩展名):" + Path.GetFileName(filePath)); Console.WriteLine("文件名称(不含扩展名):" + Path.GetFileNameWithoutExtension(filePath)); Console.WriteLine("文件扩展名:" + Path.GetExtension(filePath)); } } ``` #### 使用字符串截取方法 除了 `Path` 类的方法,还可以使用字符串操作函数(如 `Substring` 和 `LastIndexOf`)手动提取文件路径文件名和扩展名。这种方法适用于不需要完整路径解析的场景。 - **提取文件路径**:通过 `LastIndexOf("\\")` 找到最后一个反斜杠的位置,截取路径的前缀部分。 - **提取文件名**:从最后一个反斜杠之后的位置开始截取到文件扩展名前。 - **提取扩展名**:从最后一个点号之后的位置开始截取。 以下是一个示例代码: ```csharp string filePath = @"C:\JiYF\BenXH\BenXHCMS.xml"; int lastSlashIndex = filePath.LastIndexOf("\\"); int lastDotIndex = filePath.LastIndexOf("."); string directory = filePath.Substring(0, lastSlashIndex); // 文件路径 string fileNameWithExtension = filePath.Substring(lastSlashIndex + 1); // 文件名(含扩展名) string fileNameWithoutExtension = filePath.Substring(lastSlashIndex + 1, lastDotIndex - lastSlashIndex - 1); // 文件名(不含扩展名) string extension = filePath.Substring(lastDotIndex + 1); // 扩展名 Console.WriteLine("文件路径:" + directory); Console.WriteLine("文件名称(含扩展名):" + fileNameWithExtension); Console.WriteLine("文件名称(不含扩展名):" + fileNameWithoutExtension); Console.WriteLine("文件扩展名:" + extension); ``` ### 总结 通过 `System.IO.Path` 类提供的方法,可以高效地解析路径字符串,提取文件路径文件名和扩展名。对于需要手动控制字符串处理的情况,可以使用 `Substring` 和 `LastIndexOf` 方法进行截取。两者各有优势,`Path` 类的方法更简洁,而字符串操作方法则更灵活。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值