一尘不染

在java中如何拆分一个字符串?

java

在java中如何拆分一个字符串?如何使用split方法?


阅读 1394

收藏
2020-01-07

共1个答案

一尘不染

“004-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
2020-01-08