Python 官方文档:入门教程 => 点击学习
目录坑出现的环境问题的解决补充:java分割字符串常见语法一.java.lang.String.split()二.java.util.StringTokenizer()总结坑出现的环
一般情况下切割字符串会使用split或者StringTokenizer,如下代码
String s = ",,o,,";
String[] split = s.split(",");
期望得到数组["","","o","",""],但是实际上会得到["","","o"],后面两个直接被忽略了,如idea运行
StringTokenizer默认情况下
String s = ",,o,,";
StringTokenizer token = new StringTokenizer(s,",");
String[] arr = new String[token.countTokens()];
int i = 0;
while (token.hasMoreElements()){
arr[i++] = token.nextToken();
}
在IDEA中得到的运行结果
当StringTokenizer第三个参数改为true时
StringTokenizer token = new StringTokenizer(s,",",true);
貌似得到了想要的结果,但是当要切割的字符串改为下面这样时
String s = ",k,o,,";
StringTokenizer token = new StringTokenizer(s,",",true);
String[] arr = new String[token.countTokens()];
int i = 0;
while (token.hasMoreElements()){
arr[i++] = token.nextToken();
}
得到的结果是
数组的数量与预期也不符。
实际上java的split内部会按照预期的样子把字符串切割好,但是第二个参数不传的情况下默认是0,这就是会导致后面空字符串的值被丢弃
在String的split方法中可以看到
从注释说明中可以看到,通过改变第二个参数可以得到预期的结果
StringTokenizer内部也会判断切割后的值长度是否大于0,大于的情况下才会存储起来
通过设置split的第二个参数为-1
String s = ",k,o,,";
String[] split = s.split(",",-1);
在java 默认的分隔符是空格("")、制表符(\t)、换行符(\n)、回车符(\r)
示例:
for(String revaal:s.split(" ")){//用空格分隔
System.out.println(count+"ci"+revaal);
}
或者
String sourceStr = "1,2,3,4,5";
String[] sourceStrArray = sourceStr.split(",");
for (int i = 0; i < sourceStrArray.length; i++) {
System.out.println(sourceStrArray[i]);
}
如果需要指定分割后的数量的话,可以在split方法中再传入指定数量即可。
String[] sourceStrArray = sourceStr.split(",",4);
split 的实现直接调用的 matcher 类的 split 的方法。在使用String.split方法分隔字符串时,分隔符如果用到一些特殊字符,可能会得不到我们预期的结果。在正则表达式中有特殊的含义的字符,我们使用的时候必须进行转义,
1.字符"|","*","+“都得加上转义字符,前面加上”\"。
2.而如果是"",那么就得写成"\\"。
3.如果一个字符串中有多个分隔符,可以用"|"作为连字符。
StringTokenizer 构造方法:
示例:
public static void main(String[] args)
{
String str = "runoob,Google,taobao,facebook,zhihu";
// 以 , 号为分隔符来分隔字符串
StringTokenizer st=new StringTokenizer(str,",");
while(st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
}
StringTokenizer 常用方法:
到此这篇关于Java切割字符串踩坑的文章就介绍到这了,更多相关Java切割字符串的坑内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: Java切割字符串的踩坑实战记录
本文链接: https://www.lsjlt.com/news/171084.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0