作者:激越工作室 | 来源:互联网 | 2023-09-13 21:10
在使用String.split方法分隔字符串时,分隔符如果用到一些特殊字符,可能会得不到我们预期的结果。比如:StringstrJavastring-split#test
在java中,经常拆分字符串,然后使用split方法将字符串拆分为指定的分隔符,并返回字符串数组。 以下是string.split的使用示例和注意事项。
公共类stringsplit {
publicstaticvoidmain (字符串[ ] args ) {
string sourcestr=' 1,2,3,4,5 ';
string [ ] source strarray=sourcestr.split (',');
for(intI=0; i sourceStrArray.length; I ) {
system.out.println (source strarray [ I ];
}
//最多分割3个字符串
int maxSplit=3;
sourceStrArray=sourceStr.split (',',maxSplit );
for(intI=0; i sourceStrArray.length; I ) {
system.out.println (source strarray [ I ];
}
}
}
输出结果:
输出结果
split实现直接调用的matcher类的split的方法。 使用String.split方法分隔字符串时,如果在分隔符中使用特殊字符,可能无法获得预期的结果。 对正则表达式有特殊意义的字符必须转义。 示例:
公共类stringsplit {
publicstaticvoidmain (字符串[ ] args ) {
String value='192.168.128.33 ';
//请注意\\,出不去,yeah
string[]names=value.split('\. ';
for(intI=0; i names.length; I ) {
system.out.println(Names[I];
}
}
}
分割分隔符总结
1 .字符“|”、“*”和“”必须带转义符,前面必须带“\\”。 2 .另一方面,“\”时,必须写为“\\\”。 3 .如果一个字符串包含多个分隔符,则可以使用“|”作为连字符。
例如,stringstr=' javastring-split # test '可以在str.split('|-|# ' )中按字符串进行分隔。 这样把字符串分成了三个子字符串。
Java.util.tokenizer JDK 1.0 orla ter
字符串tokenizer
使用StringTokenizer类,APP应用程序可以将字符串分解为标记。 StringTokenizer是为了兼容性而保留的传统类(虽然新代码不推荐)。 所有要求此功能的人都建议使用String的split方法或java.util.regex包。
代码示例
公共类stringsplit {
publicstaticvoidmain (字符串[ ] args ) {
字符串IP=' 192.168.128.33 ';
stringtokenizertoken=new string tokenizer (IP,'.';
wile(Token.hasmoreelements () ) )。
system.out.print (token.next token () ');
}
}
}
但是,对于字符串' 192.168.33 '的拆分,StringTokenizer只返回三个元素,而忽略两个分隔符之间的空字符串。 请慎重使用这个。
但是,string.split(string.split在正则表达式中匹配,因此不使用KMP字符串匹配算法)使用了顺序遍历算法,而时间复杂度o(m*n )
分享小经验:
1、分隔符为“.”、“|”、转义字符得不到正确结果、“*”、“”时,要引发错误并引发异常,请务必在前面加“\\”,如split ()
2、使用“\”作为分隔符时,必须写string.split(stringstr='a\\b )。 因为在Java中“\”用“\”表示,所以字符串写为: stringstr='a\b
转义字符必须带有“\\”。
3、如果一个字符串包含多个分隔符,可以将“|”连字符。 例如,如果stringstr=' javastring-split # test ',则可以使用str.split('|-|# ' )将每个字符串分开。
PS:JAVA初学者交流组: 457036818,欢迎提问JAVA相关问题