java分割字符串的方法_java字符串按照特定字符分割

java分割字符串的方法_java字符串按照特定字符分割最近在项目中遇到一个小问题,一个字符串分割成一个数组,类似Stringstr=”aaa,bbb,ccc”;然后以”,”为分割符,将其分割成一个数组,用什么方法去实现呢?第一种方法:可能一下子就会想到使用split()方法,用split()方法实现是最方便的,但是它的效率比较低第二种方法:使用效率较高的StringTokenizer类分割字符串,StringTokenizer类是

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

最近在项目中遇到一个小问题,一个字符串分割成一个数组,类似String str=”aaa,bbb,ccc”; 然后以”,”为分割符,将其分割成一个数组,用什么方法去实现呢?

第一种方法:

可能一下子就会想到使用split()方法,用split()方法实现是最方便的,但是它的效率比较低

第二种方法:

使用效率较高的StringTokenizer类分割字符串,StringTokenizer类是JDK中提供的专门用来处理字符串分割子串的工具类。它的构造函数如下:

public StringTokenizer(String str,String delim)

str是要分割处理的字符串,delim是分割符号,当一个StringTokenizer对象生成后,通过它的nextToken()方法便可以得到下一个分割的字符串,再通过hasMoreTokens()方法可以知道是否有更多的子字符串需要处理。这种方法的效率比第一种高。

第三种方法:

使用String的两个方法—indexOf()和subString(),subString()是采用了时间换取空间技术,因此它的执行效率相对会很快,只要处理好内存溢出问题,但可大胆使用。而indexOf()函数是一个执行速度非常快的方法,原型如下:

public int indexOf(int ch)

它返回指定字符在String对象的位置。如下:

String orgStr = "15451255555534";
		String tmp = orgStr;
		String[] splitStr = new String[10];
		int i = 0;
		while (true) {

			int j = tmp.indexOf("5");// 找分隔符的位置
			if (j == -1) {// 没有分隔符存在
				splitStr[i] = tmp;
				break;
			}
			splitStr[i] = tmp.substring(0, j);// 找到分隔符,截取子字符串
			i++;
			tmp = tmp.substring(j + 1); // 剩下需要处理的字符串
		}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/187692.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 正则表达式替换自身「建议收藏」

    正则表达式替换自身「建议收藏」一、问题:将文本中所有[XXX]替换成XXX(XXX包含字母数字下划线),就是将中括号去掉了例如:[PK_Roles]   替换成:PK_Roles二、解答:正则式:\[([0-9a-zA-Z_]*)\]加圆括号表示分组并作为“反向索引”,[0-9a-zA-Z_]*表示多个数字字母下划线替换式:\1\1表示引用第1个组,\1在有些环境中是$1三、常用正则表达式空行

    2022年5月16日
    37
  • APAP代码(1)「建议收藏」

    APAP代码(1)「建议收藏」staticintVideoStitch(intargc,char*argv[]){ for(inti=0;i<argc;i++) printf(“%s\n”,argv[i]); intretval=parseCmdArgs(argc,argv); /*if(retval) returnretval;*/ is_camera=false; for(inti=0;i<video_names.size();i++) .

    2022年9月22日
    4
  • imread怎么读取图片_opencv读不到图片

    imread怎么读取图片_opencv读不到图片Matimage_source=imread(“D:\program\xie.png”)直接放入图片的绝对路径只需要把图像文件放在工程文件夹下和.cpp文件放在一起就行了,读取的时候就可以直接用名字读取,如imread(“miao.jpg”);src=imread(argv[1],1);方法是:工程——属性——配置属性——调试——命令行参数,然后设置就行了。argv[1…

    2022年10月14日
    2
  • 全球邮箱正则表达式是什么_验证邮箱的正则表达式

    全球邮箱正则表达式是什么_验证邮箱的正则表达式最近做外贸,涉及到邮箱的匹配,网上查了一下,没有合适的,因为设计到各种语言,各种格式的邮箱,就尝试自己写了,效果还可以。$partten=’/[^`~!@#$%\^&amp;\*\(\)\+=\|\{\}\’:;\’,\\\[\]&lt;&gt;\/\?~!@#¥%……&amp;\*()——+\|\{\}【】‘;:”“’。,、?\s]{1,}@[^`~!@#$%\^&amp;\*\(\)…

    2025年12月2日
    5
  • Idea中建多层级包时出现的问题

    Idea中建多层级包时出现的问题刚开始使用idea时发现不会分包。假如我想在com下面分别建Dao、pojo、service包等,会出现每次在上一个包里面建包,并不会使Dao、pojo、service包平级。解决方法:方法一:            1)先在java包下建名为com包,     2)鼠标点击com的上一级包(这里就是java包),然后新建包为com.Dao包。这里会出现不用着急,因为你只有一个包。再继续点击com…

    2022年6月13日
    35
  • jeesit1.27使用(2)-图片处理

    jeesit1.27使用(2)-图片处理 解决问题:字典使用使用对象:初级开发人员,项目时间紧张没有空钻研源码需要马上学会使用。1.配置表时选择文件上传。 2.生成代码,不敷述了 3.修改form.jsp代码 将type中的files改为images。4.修改list.jsp。…

    2025年6月7日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号