如何在Java中拆分字符串
我有一个字符串"004-034556"
,我想把它分成两个字符串:
string1="004";
string2="034556";
这意味着第一个字符串将包含'-'
之前的字符,第二个字符串将包含'-'
之后的字符。我还想检查字符串中是否有'-'
。如果没有,我将抛出一个异常。我该怎么做
你可以在下面搜索框中键入要查询的问题!
我有一个字符串"004-034556"
,我想把它分成两个字符串:
string1="004";
string2="034556";
这意味着第一个字符串将包含'-'
之前的字符,第二个字符串将包含'-'
之后的字符。我还想检查字符串中是否有'-'
。如果没有,我将抛出一个异常。我该怎么做
# 1 楼答案
# 2 楼答案
使用:
这将把你的绳子分成两部分。数组中的第一个元素将是包含
-
之前的内容的部分,数组中的第二个元素将包含-
之后的字符串部分如果数组长度不是2,则字符串的格式不是:
string-string
检查
String
类中的split()方法# 3 楼答案
使用Java 8:
# 4 楼答案
这:
你应该做你想做的事。string类有许多方法可以使用字符串进行操作
# 5 楼答案
直接处理字符串的另一种方法是使用带有捕获组的正则表达式。这样做的优点是,可以直接对输入暗示更复杂的约束。例如,以下命令将字符串拆分为两部分,并确保两部分仅由数字组成:
由于模式在这个实例中是固定的,所以可以预先编译它并将其存储为静态成员(在示例中是在类加载时初始化的)。正则表达式是:
括号表示捕获组;匹配项可以访问与regexp的该部分匹配的字符串。方法,如图所示。\d匹配和一个十进制数字,+表示“匹配前面的一个或多个表达式”。-没有特殊含义,因此只匹配输入中的该字符。请注意,在将其作为Java字符串写入时,需要双转义反斜杠。其他一些示例:
# 6 楼答案
只需使用适当的方法:^{}
请注意,这需要一个regular expression,因此如果需要,请记住转义special characters
因此,如果您想在例如period/dot} 转义单个特殊字符,如So} 表示文字字符,如So} 转义整个字符串,如So
.
上拆分,这在正则表达式中表示“any character”,请使用backslash ^{split("\\.")
,或使用character class ^{split("[.]")
,或使用^{split(Pattern.quote("."))
要预先测试字符串是否包含某些字符,只需使用^{}
注意,这不采用正则表达式。为此,请使用^{}
如果希望在生成的部分中保留拆分字符,请使用positive lookaround。如果您想让拆分字符在左侧结束,请通过在模式上前缀
?<=
group使用正向查找如果希望拆分字符结束在右侧,请通过在模式上前缀
?=
group来使用正向前瞻如果您想限制结果部分的数量,那么可以提供所需的数量作为
split()
方法的第二个参数