Java 字符串截取及常见场景与方法详解

 更新时间:2024年12月09日 10:49:04   作者:Java猿  
在 Java 开发中,截取字符串是一个非常常见的操作,无论是获取文件名还是提取某些特定内容,本文详细介绍了截取字符串最后一位及其他常见截取操作的多种方法,帮助开发者快速上手,感兴趣的朋友跟随小编一起看看吧

Java 字符串截取详解:常见场景与方法

在 Java 开发中,截取字符串是一个非常常见的操作,无论是获取文件名还是提取某些特定内容。本文详细介绍了截取字符串最后一位及其他常见截取操作的多种方法,帮助开发者快速上手。

1. 截取字符串最后一位

1.1 用 substring() 截取

substring() 是最常用的字符串截取方法,支持通过索引位置获取部分字符串。理论格式如下:

String result = str.substring(str.lastIndexOf("\\") + 1);

注意:当涉及特殊字符(如反斜杠 \)时,需要用 \\ 进行转义。

示例:

public class Test {
    public static void main(String[] args) {
        String fileName = "E:/eclipse_workspace1/FtpOperateFile/logs/IYinXin.log";
        String newFileName = fileName.substring(fileName.lastIndexOf("/") + 1);
        System.out.println("最后一个文件名为=====>" + newFileName);
    }
}

输出结果:
最后一个文件名为=====>IYinXin.log

1.2 用 split() 截取

split() 方法可以根据指定的分隔符对字符串进行切割,返回一个字符串数组。

注意:当使用特殊字符(如 /.)作为分隔符时,需要用 \\ 转义。

示例:

public class Test {
    public static void main(String[] args) {
        String fileName = "E:/eclipse_workspace1/FtpOperateFile/logs/IYinXin.log";
        // 使用 / 进行切割
        String[] splitFileName = fileName.split("\\/");
        // 获取最后一个文件名
        String lastName = splitFileName[splitFileName.length - 1];
        System.out.println("最后一个文件名是=====>" + lastName);
    }
}

输出结果:
最后一个文件名是=====>IYinXin.log

1.3 Windows 下目录的特殊处理

在 Windows 系统中,路径分隔符通常为反斜杠 \,需要注意转义。以下是一个示例:

public class Test {
    public static void main(String[] args) {
        String filePath = "C:\\Program Files\\Java\\jdk-17\\bin\\java.exe";
        String fileName = filePath.substring(filePath.lastIndexOf("\\") + 1);
        System.out.println("文件名是=====>" + fileName);
    }
}

输出结果:
文件名是=====>java.exe

1.4 Linux 下目录的特殊处理

Linux 系统中的路径分隔符是正斜杠 /,因此处理起来相对简单。例如:

public class Test {
    public static void main(String[] args) {
        String filePath = "/usr/local/bin/java";
        String fileName = filePath.substring(filePath.lastIndexOf("/") + 1);
        System.out.println("文件名是=====>" + fileName);
    }
}

输出结果:
文件名是=====>java

2. 截取字符串的常见方法

2.1 常用方法

Java 提供了以下两种常见的字符串截取方法:

  • split():根据分隔符拆分字符串,返回字符串数组。
  • substring():根据索引截取字符串。

2.2 方法介绍与应用示例

方法一:split()

1. 使用一个参数:split(String regex)

根据给定的正则表达式拆分字符串。注意,正则表达式可能会带来性能损耗。

示例:

String str = "AB@CD";
String[] parts = str.split("@");
for (String part : parts) {
    System.out.println(part);
}

输出结果:

AB  
CD  

2. 使用两个参数:split(String regex, int limit)

根据分隔符和分割次数来拆分字符串。

示例:

String str = "HelloWorld@qq@com";
String[] parts = str.split("@", 2);
for (String part : parts) {
    System.out.println(part);
}

输出结果:

HelloWorld  
qq@com  

方法二:substring()

1. 单参数:substring(int beginIndex)

从指定索引开始截取到字符串末尾。

示例:

String sb = "HelloWorld@qq.com";
String result = sb.substring(5);
System.out.println(result);

输出结果:
World@qq.com

2. 双参数:substring(int beginIndex, int endIndex)

从指定的起始索引截取到结束索引(不包含结束索引对应的字符)。

示例:

String sb = "HelloWorld@qq.com";
String result = sb.substring(0, 5);
System.out.println(result);

输出结果:
Hello

3. 根据特定字符截取

可以通过 indexOf() 方法获取特定字符的位置,从而灵活截取字符串。

示例:

String sb = "HelloWorld@qq.com";
String result = sb.substring(0, sb.indexOf("@"));
System.out.println(result);

输出结果:
HelloWorld

总结

方法适用场景返回类型注意事项
split()按特定字符或正则表达式拆分字符串字符串数组正则性能可能会受影响
substring()根据索引截取部分字符串或处理路径字符串小心索引越界

不同方法适用于不同场景。例如:

  • 需要简单拆分时,用 split() 更直观。
  • 处理路径或特定字符截取时,substring() 更灵活高效。

通过灵活组合这些方法,能快速解决日常开发中的字符串处理问题!

到此这篇关于Java 字符串截取详解:常见场景与方法的文章就介绍到这了,更多相关Java 字符串截取内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • spring集成httpclient配置的详细过程

    spring集成httpclient配置的详细过程

    spring框架是一个非常强大的框架这里就不多说了,那么主要是介绍spring与httpclient的整合集成过程,感兴趣的朋友跟随小编一起看看吧
    2021-07-07
  • spring batch 读取多个文件数据导入数据库示例

    spring batch 读取多个文件数据导入数据库示例

    本篇文章主要介绍了spring batch 读取多个文件数据导入数据库示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • Java管道流实现线程间通信过程解析

    Java管道流实现线程间通信过程解析

    这篇文章主要介绍了Java管道流实现线程间通信过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • 关于Java的二叉树、红黑树、B+树详解

    关于Java的二叉树、红黑树、B+树详解

    这篇文章主要介绍了关于Java的二叉树、红黑树、B+树详解,能同时具备数组查找快的优点以及链表插入和删除快的优点的数据结构就是树,需要的朋友可以参考下
    2023-05-05
  • IDEA中多行注释及取消注释的快捷键分享

    IDEA中多行注释及取消注释的快捷键分享

    这篇文章主要介绍了IDEA中多行注释及取消注释的快捷键分享,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • 老生常谈Java反射机制(必看篇)

    老生常谈Java反射机制(必看篇)

    下面小编就为大家带来一篇老生常谈Java反射机制(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • mybatis教程之增删改查_动力节点Java学院整理

    mybatis教程之增删改查_动力节点Java学院整理

    这篇文章主要介绍了mybatis教程之增删改查,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • IDEA2022搭建Spring Cloud多模块项目的详细过程

    IDEA2022搭建Spring Cloud多模块项目的详细过程

    这篇文章主要介绍了IDEA2022搭建Spring Cloud多模块项目,网上有很多教程父模块都是通过maven的方式创建的,然后子模块是通过Spring Initalizr方式创建,这种方式父模块无法管理子模块的依赖仲裁,需要每个子模块自行管理,就失去了父模块的用处了
    2022-10-10
  • 解决SpringMVC、tomcat、Intellij idea、ajax中文乱码问题

    解决SpringMVC、tomcat、Intellij idea、ajax中文乱码问题

    这篇文章主要介绍了解决SpringMVC、tomcat、Intellij idea、ajax中文乱码问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • java模拟实现银行ATM机操作

    java模拟实现银行ATM机操作

    这篇文章主要为大家详细介绍了java模拟实现银行ATM机操作,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05

最新评论