java里怎么分割字符串_Java中如何分割字符串string

这篇博客介绍了如何在Java中使用String的split()方法来根据特定字符分割字符串,并检查字符串是否包含该字符。通过示例代码展示了如何将'004-034556'分割成'004'和'034556',同时提供了如果字符串不包含'-'时抛出异常的方法。此外,还讲解了split()方法的其他用法,如限制分割结果的数量,以及正向环视和正向后视的概念。
摘要由CSDN通过智能技术生成

一、概述

我有一个字符串,"004-034556"我想分成两个字符串:

string1="004";

string2="034556";

这意味着第一个字符串将包含之前的字符'-',第二个字符串将包含之后的字符'-'。我还想检查字符串是否包含'-'在其中。如果没有,我将抛出异常。我怎样才能做到这一点?

二、详解

只需使用适当的方法即可:String#split()。

String string = "004-034556";

String[] parts = string.split("-");

String part1 = parts[0]; // 004

String part2 = parts[1]; // 034556

请注意,这需要一个正则表达式,因此请记住在必要时转义特殊字符。

有12个具有特殊含义的字符:反斜杠\,插入符号^,美元符号$,句点或点.,竖线或竖线符号|,问号?,星号或星号*,加号+,左括号(,右括号),以及方括号[,大括号{,这些特殊字符通常称为“元字符”。

所以,如果你想在如期间分/点.的意思是“任何字符在正则表达式”,请使用反斜杠\逃脱个别特殊字符,像这样split("\\."),或使用字符类[]来表示文字字符(S)像这样split("[.]"),或使用Pattern#quote()以这样逃脱整个字符串split(Pattern.quote("."))。

String[] parts = string.split(Pattern.quote(".")); // Split on period.

要预先测试字符串是否包含某些字符,只需使用String#contains()。

if (string.contains("-")) {

// Split it.

} else {

throw new IllegalArgumentException("String " + string + " does not contain -");

}

注意,这不需要正则表达式。为此,请String#matches()改用。

如果您想在结果部分中保留分割字符,请使用正向环视。如果要使分割字符最后出现在左侧,请?<=在模式前面加上group作为前缀,使用正向后视。

String string = "004-034556";

String[] parts = string.split("(?<=-)");

String part1 = parts[0]; // 004-

String part2 = parts[1]; // 034556

如果您希望分割字符以右侧结尾,请在?=模式前面加上group作为前缀。

String string = "004-034556";

String[] parts = string.split("(?=-)");

String part1 = parts[0]; // 004

String part2 = parts[1]; // -034556

如果您想限制生成零件的数量,则可以提供所需的数量作为split()method的第二个参数。

String string = "004-034556-42";

String[] parts = string.split("-", 2);

String part1 = parts[0]; // 004

String part2 = parts[1]; // 034556-42

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值