发布日期:2018-03-26
如何在Java中分割字符串+ 查看更多
如何在Java中分割字符串
+ 查看更多
发布日期:2018-03-10 13:35
分类:JAVA
浏览次数:297
我有一个字符串,"004-034556",我想分成两个字符串:
string1 = 004
string2 = 034556
这意味着第一个字符串将包含' - '之前的字符,第二个字符串将包含' - '后面的字符. 我还想检查字符串中是否有" - ". 如果没有,我会抛出异常. 我如何做到这一点?
string2 = 034556
这意味着第一个字符串将包含' - '之前的字符,第二个字符串将包含' - '后面的字符. 我还想检查字符串中是否有" - ". 如果没有,我会抛出异常. 我如何做到这一点?
回答:
只需使用适当的方法:String#split().String string ="004-034556"; String [] parts = string.split(" - "); String part1 = parts [0]; // 004 String part2 = parts [1]; // 034556
请注意,这需要一个正则表达式,所以记住必要时转义特殊字符.
有12个字符有特殊含义:反斜杠\,脱字符号^,美元符号$,句点或点.,竖线或管符号|,问号?,星号或星号*,加号+ ,开始括号(,右括号)和开头的方括号[,开头的大括号{,这些特殊字符通常称为"元字符".
所以,如果你想分开例如.周期/点.这意味着正则表达式中的"任何字符",使用反斜杠\来转义单个特殊字符,如split("\\."),或使用字符类[]来表示文本字符,如split(" ]"),或使用Pattern#quote()来转义整个字符串,如split(Pattern.quote)".")).
所以,如果你想分开例如.周期/点.这意味着正则表达式中的"任何字符",使用反斜杠\来转义单个特殊字符,如split("\\."),或使用字符类[]来表示文本字符,如split(" ]"),或使用Pattern#quote()来转义整个字符串,如split(Pattern.quote)".")).
String [] parts = string.split(Pattern.quote(".")); //拆分期.
要预先测试字符串是否包含某些字符,只需使用String#contains().
要预先测试字符串是否包含某些字符,只需使用String#contains().
if(string.contains("-")){ //拆分它. } else { throw new IllegalArgumentException("tring"+ string +"does not contain -"); }}
如果不采取正则表达式也可以使用String#matches().
如果你想保留分割字符在结果部分,然后使用正面的周转.如果你想要分割的字符结束在左手边,使用积极的后瞻通过前缀<=组模式.
如果你想保留分割字符在结果部分,然后使用正面的周转.如果你想要分割的字符结束在左手边,使用积极的后瞻通过前缀<=组模式.
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()方法的第二个参数.
String string ="004-034556-42"; String [] parts = string.split("-",2); String part1 = parts [0]; // 004 String part2 = parts [1]; // 034556-42