java中切分字符串的方法

简介: java中切分字符串的方法

在我们日常工作中经常遇到截取字符串的需求,这里重点介绍两种常见的截取字符串方法。

方法一:通过split()


此方法返回的是一个字符串数组类型。

1.只传一个参数:split(String regex)

将正则传入split(),根据给定正则表达式的匹配拆分此字符串。不过通过这种方式截取会有很大的性能损耗,因为分析正则非常耗时。

String str = "HelloWorld@qq.com";
String[] strs = str.split("@");
for(int i=0;i<strs.length;i++){
System.out.println(strs[i].toString());
}

运行结果:

HelloWorld

qq.com

2.传入两个参数:split(String regex,int limit)

  • regex -- 正则表达式分隔符。
  • limit -- 分割的份数。

将正则和份数传入split()。根据给定正则表达式的匹配和想要分割的份数来拆分此字符串。

String str = "HelloWorld@qq@com";
String[] strs = str.split("@",3);
for(int i=0,i<strs.length;i++){
System.out.println(strs[i].toString());
}

运行结果:

HelloWorld

qq

com

方法二:通过subString()方法来进行字符串截取


1、只传一个参数:subString(int beginIndex)

将字符串从索引号为beginIndex开始截取,一直到字符串末尾。(注意索引值从0开始);

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

运行结果:

World@qq.com

2、传入两个参数:substring(int beginIndex, int endIndex)

从索引号beginIndex开始到索引号endIndex结束(返回结果包含索引为beginIndex的字符不包含索引endIndex的字符),如下所示:

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

运行结果:

Hello

3、根据某个字符截取字符串

这里根据”@”截取字符串(也可以是其他子字符串)

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

运行结果:

HelloWorld

分析:indexOf(String str)方法返回的是子字符串第一次出现在字符串的索引位置,上面的代码返回的是@前面的字符。

相关文章
|
2天前
|
Java
Java实现:将带时区的时间字符串转换为LocalDateTime对象
通过上述方法,你可以将带时区的时间字符串准确地转换为 `LocalDateTime`对象,这对于处理不需要时区信息的日期和时间场景非常有用。
39 4
|
9天前
|
Java
Java的方法详解
Java的方法是类中的重要组成部分,用于定义类的行为。方法可以接收参数、执行操作并返回结果。其基本语法包括返回类型、方法名、参数列表和方法体。方法支持重载,即同名但参数不同的多个方法;静态方法则直接通过类名调用,无需实例化。此外,Java还支持可变参数,允许方法接收不定数量的参数。通过访问修饰符如`public`、`protected`、`private`,可以控制方法的可见性。方法是实现类功能的基本单元,增强了程序的灵活性和复用性。
|
11天前
|
算法 Oracle Java
Java字符串拼接技术演进及阿里巴巴的贡献
本文主要讲述了Java字符串拼接技术的演进历程,以及阿里巴巴贡献的最新实现 PR 20273。
|
16天前
|
存储 Java 程序员
优化Java多线程应用:是创建Thread对象直接调用start()方法?还是用个变量调用?
这篇文章探讨了Java中两种创建和启动线程的方法,并分析了它们的区别。作者建议直接调用 `Thread` 对象的 `start()` 方法,而非保持强引用,以避免内存泄漏、简化线程生命周期管理,并减少不必要的线程控制。文章详细解释了这种方法在使用 `ThreadLocal` 时的优势,并提供了代码示例。作者洛小豆,文章来源于稀土掘金。
|
17天前
|
算法 Oracle Java
Java字符串拼接技术演进及阿里巴巴的贡献
本文主要讲述了Java字符串拼接技术的演进历程,以及阿里巴巴贡献的最新实现 PR 20273。
|
21天前
|
Java
用JAVA架建List集合为树形结构的代码方法
这段代码定义了一个表示树形结构的 `Node` 类和一个用于构建树形结构的 `TreeController`。`Node` 类包含基本属性如 `id`、`pid`、`name` 和 `type`,以及子节点列表 `children`。`TreeController` 包含初始化节点列表并将其转换为树形结构的方法。通过过滤和分组操作实现树形结构的构建。详情可见:[代码示例链接1](http://www.zidongmutanji.com/zsjx/43551.html),[代码效果参考链接2](https://www.257342.com/sitemap/post.html)。
28 5
|
23天前
|
安全 Java 开发者
【技术咖必看】Java异常处理新境界:throws关键字,打造万无一失的方法签名!
【技术咖必看】Java异常处理新境界:throws关键字,打造万无一失的方法签名!
32 3
|
23天前
|
安全 Java 程序员
【程序猿逆袭指南】Java高手的秘密武器:throws关键字,让你的方法签名霸气侧漏!
【程序猿逆袭指南】Java高手的秘密武器:throws关键字,让你的方法签名霸气侧漏!
15 3
|
25天前
|
Java Spring 容器
Java获取接口的所有实现类方法
这篇文章介绍了在Java中获取接口所有实现类的方法,包括使用JDK的ServiceLoader(SPI机制)和Spring Boot中的@Autowired自动注入及ApplicationContextAware接口两种方式。
43 1
|
7天前
|
JavaScript 前端开发 Java
通过JUnit5访问Java静态、私有、保护变量和方法
在《通过Gtest访问C++静态、私有、保护变量和方法》一文中介绍了如何通过Gtest访问C++静态、私有、保护变量和方法,本文介绍如何通过Junit5访问Java静态、私有、保护变量和方法。
13 0