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 字符串截取内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SSM项目中配置LOG4J日志的方法

    SSM项目中配置LOG4J日志的方法

    本篇文章主要介绍了SSM项目中配置LOG4J日志的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • java编程创建型设计模式工厂方法模式示例详解

    java编程创建型设计模式工厂方法模式示例详解

    这篇文章主要为大家介绍了java编程创建型设计模式之工厂方法模式的创建及案例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2022-02-02
  • logback ThresholdFilter临界值日志过滤器源码解读

    logback ThresholdFilter临界值日志过滤器源码解读

    这篇文章主要为大家介绍了logback ThresholdFilter临界值日志过滤器源码解读,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • Java数据类型之引用数据类型解读

    Java数据类型之引用数据类型解读

    这篇文章主要介绍了Java数据类型之引用数据类型,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • JAVA线程池专题(概念和作用)

    JAVA线程池专题(概念和作用)

    这篇文章主要介绍了Java线程池的概念和作用,文中讲解非常详细,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-06-06
  • maven profile实现多环境配置的示例

    maven profile实现多环境配置的示例

    这篇文章主要介绍了maven profile实现多环境配置的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • Java 通过API操作GraphQL

    Java 通过API操作GraphQL

    这篇文章主要介绍了Java 通过API操作GraphQL的方法,帮助大家更好的理解和学习使用Java,感兴趣的朋友可以了解下
    2021-05-05
  • 详解SpringMVC——接收请求参数和页面传参

    详解SpringMVC——接收请求参数和页面传参

    这篇文章主要介绍了详解SpringMVC——接收请求参数和页面传参,小编觉得挺不错的,现在分享给大家,也给大家做个参考。
    2016-12-12
  • maven的生命周期及常用命令介绍

    maven的生命周期及常用命令介绍

    maven是一个项目构建和管理的工具,提供了帮助管理 构建、文档、报告、依赖、scms、发布、分发的方法。下面通过本文给大家分享maven的生命周期及常用命令介绍,需要的朋友参考下吧
    2017-11-11
  • java.lang.InterruptedException异常的问题解决

    java.lang.InterruptedException异常的问题解决

    本文主要介绍了java.lang.InterruptedException异常的问题解决,这种异常通常意味着 Jenkins 任务在执行过程中被中断,这可能会导致任务失败或中止,下面就来介绍一下解决方法,感兴趣的可以了解一下
    2024-07-07

最新评论