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

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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篇博客计划。加油|ू・ω・` )

### Oracle 数据库中用于截取字符串的函数 在 Oracle 数据库中,`SUBSTR` 是最常用的字符串截取函数之一。它可以从指定位置开始提取子串,并支持多种参数配置[^3]。 #### `SUBSTR` 函数详解 - **语法**: ```sql SUBSTR(string, start, [length]) ``` - `string`: 被操作的目标字符串- `start`: 子串的起始位置。正数表示从左向右计数;负数则从右侧开始计算。 - `[length]`: 可选参数,定义要截取的字符数量。如果不提供此参数,默认会一直截取字符串末尾。 #### 配合其他函数使用 当仅依靠 `SUBSTR` 不足以满足复杂需求时,通常需要与其他函数联合使用。例如,在动态定位分隔符的情况下,可以结合 `INSTR` 来获取目标位置后再执行截取操作[^1]。 - **`INSTR` 函数** - 功能:返回某个子串首次出现的位置。 - 语法: ```sql INSTR(string, substring [, start_position [, occurrence]]) ``` 通过组合这两个功能强大的工具,能够灵活应对各种场景下的字符串解析任务。比如去除路径中的文件名部分可以通过以下方式完成: ```sql SELECT SUBSTR(file_path, 1, INSTR(file_path, '/', -1) - 1) AS path_without_filename FROM your_table_name; ``` 这里利用了 `INSTR(... , '/' ,-1)` 寻找最后出现的一次 `/` 符号所在索引值作为终点界限来进行裁剪工作[^2]。 综上所述,对于简单的定长字段可以直接调用单个 substr 方法即可达成目的;而对于不定长或者更复杂的业务逻辑,则建议采用 instr 加上 substr 的形式构建解决方案。 ### 示例代码展示 以下是几个实际应用的例子供参考: ```sql -- 示例一: 提取出邮箱前缀 (假设用户名@域名.com) select substr('example.user@example-domain.com',1,instr('example.user@example-domain.com','@')-1 ) as username from dual; -- 示例二: 获取URL协议头(http:// 或 https:// ) with sample_data(url)as( select 'https://www.oracle.com/'from dual union all select'http://docs.python.org/tutorial/index.html'from dual ) select case when lower(substr(url,1,8))='https://'then'secure' else 'non_secure' end protocol_type, url from sample_data ; ``` 以上展示了如何基于不同条件选取所需片段的方法论思路。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值