java 字符串分割的三种方法(总结)

最近在项目中遇到一个小问题,一个字符串分割成一个数组,类似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对象的位置。如下:

举例:

"ab&&2"以&分割成"ab" "2"

String tmp = "ab&&2";
String splitStr = null;
int j = tmp.indexOf("&");       // 找分隔符的位置
splitStr = tmp.substring(0, j);    // 找到分隔符,截取子字符串
tmp = tmp.substring(j + 2);     // 剩下需要处理的字符串
System.out.println(splitStr);
System.out.println(tmp);

ab
2

以上这篇java 字符串分割的三种方法(总结)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • java中简单的截取分割字符串实例

    目前整理出来三种形式: 可根据实际需要选择使用 String userNameUrl; int beginIndex = 0; int endIndex = 0; userNameUrl = "454512@hongri@4944115455d9591b274648a06303d910de"; /** * 方法一: */ beginIndex = userNameUrl.indexOf("@")+1; endIndex = userNameUrl.lastIndex

  • java 中用split分割字符串,最后的空格等不被拆分的方法

    在使用java中的split按照"\t",拆分字符串的时候,发现如果最后的几个字段是空,只是用\t分割,是连着的\t的话,就不会被分割,如 "d\tc\te\t\t\t"最后的几个\t就不会被分割,应该是在拆分之前对字符串进行了处理. 导致的拆分字段个数错误.查了一下APi,需要在split中添加参数-1,String[] values = line.split("\t",-1); imit 参数控制应用模式的次数,从而影响结果数组的长度 如果限

  • Java 分割字符串详解及实例代码

     Java 分割字符串 java.lang.String 的 split() 方法, JDK 1.4 or later public String[] split(String regex,int limit) 示例代码 public class StringSplit { public static void main(String[] args) { String sourceStr = "1,2,3,4,5"; String[] sourceStrArray = sourceSt

  • Java中分割字符串的两种方法实例详解

    前言 相信大家应该都知道在java编程中,有时候我们需要把一个字符串按照某个特定字符.字母等作为截点分割这个字符串,这样我们就可以使用这个字符串的一部分或者把所有截取的内容保存到数组里等操作.下面这篇文章就给大家分享了两种分割的方法,下面来一起看看吧. 一.java.lang.String 的 split() 方法, JDK 1.4 or later public String[] split(String regex,int limit) 示例代码 public class StringSpl

  • java分割文本字符串的方法

    问题:在项目中,当保存数据超过数据库字段列长度限制时,如何解决? 一种常见的解决办法是:截串存取.顾名思义,就是对大文本数据按指定长度进行截取,返回结果集依截取顺序存储在新表中.并通过在新表中创建一个type字段来标识新表中截取的内容对应旧表中的字段名,而旧表中相应的字段不再直接存放大文本数据,而是存放标识符. 这里,提供一种工具类,用来分割文本字符串,返回List结果集供下一步使用. public class StringUtil { /** * @Name: getContentByList

  • java用split分割字符串的一个有趣现象

    下面有段代码: String str="1#2#3"; String[] strs=str.split("#"); System.out.println(strs.length); ok,上面这段代码最终输出结果是2,这没有问题,但是如果换成下面的写法呢,请看: String str="##"; String[] strs=str.split("#"); System.out.println(strs.length); 结果输

  • java 字符串分割的三种方法(总结)

    最近在项目中遇到一个小问题,一个字符串分割成一个数组,类似String str="aaa,bbb,ccc"; 然后以","为分割符,将其分割成一个数组,用什么方法去实现呢? 第一种方法: 可能一下子就会想到使用split()方法,用split()方法实现是最方便的,但是它的效率比较低 第二种方法: 使用效率较高的StringTokenizer类分割字符串,StringTokenizer类是JDK中提供的专门用来处理字符串分割子串的工具类.它的构造函数如下: publ

  • java 字符串截取的三种方法(推荐)

    众所周知,java提供了很多字符串截取的方式.下面就来看看大致有几种. 1.split()+正则表达式来进行截取. 将正则传入split().返回的是一个字符串数组类型.不过通过这种方式截取会有很大的性能损耗,因为分析正则非常耗时. String str = "abc,12,3yy98,0"; String[] strs=str.split(","); for(int i=0,len=strs.length;i<len;i++){ System.out.pri

  • JAVA字符串反转的三种方法

    方法一:使用StringBuilder import java.util.Scanner; public class StrReversal { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String str = scanner.nextLine(); System.out.println(new StringBuilder(str).reverse()); } } 方法二

  • java字符串反转的7种方法

    目录 1.用stringBuffer或者stringBuilder自带的reverse方法 2.将字符串拆分为char数组 3.stringBuffer倒序拼接 4.利用栈的先进后出 5.二分换位反转 6.切割递归反转 7.二分递归反转 1.用stringBuffer或者stringBuilder自带的reverse方法     public static String reverseTestOne(String s) {         return new StringBuffer(s).r

  • Java打印数组的三种方法整理

    目录 ①.使用 for 循环打印 ②.使用 Arrays.toString() 或 Arrays.deepToString() ③.使用 Arrays.asList() 补充:java byte数组打印 十六位数组打印输出 普通数组打印输出 总结 在Java开发中有时候需要打印数组信息,下面是整理归纳的几种打印数组方法:(如下) ①.使用 for 循环打印 最简单的方法,逐个遍历打印 注:如果是多维数组的话,使用多层 for 循环嵌套就可以打印了. 一维数组: public static voi

  • Java字符串写入文件三种方式的实现

     Java字符串写入文件三种方式的实现 1.使用FileWriter String str="hello world!"; FileWriter writer; try { writer = new FileWriter("E:/token.txt"); writer.write(str); writer.flush(); writer.close(); } catch (IOException e) { e.printStackTrace(); } 2.使用Fil

  • Java实现队列的三种方法集合

    数组实现队列 //数组实现队列 class queue{ int[] a = new int[5]; int i = 0; //入队操作 public void in(int m) { a[i++] = m; } // 出队列操作 取出最前面的值 通过循环遍历把所有的数据向前一位 public int out() { int index = 0; int temp = a[0]; for(int j = 0;j < i;j++) { a[j] = a[j + 1]; } return temp;

  • Java压缩集合的三种方法

    前言 这个问题算是开发当中偶尔会遇到的一个小问题,比如如何将两个集合压缩成为一个逻辑集合. 如果你不理解,我们可以看一个简单的例子,去说明什么是压缩集合.本文文章不长,但是还算是比较实用的小技巧.主要内容来源于国外小哥Baeldung的博客:下面给出个地址 https://www.baeldung.com/java-collections-zip 这位大佬虽然写的很详细,但是有一些细节小问题,我在此基础之上,实地验证了一遍,发现有几个坑,不过已经填完了. 案例解释什么是压缩集合 现在有两个集合:

  • Java 实现定时任务的三种方法

    是的,不用任何框架,用我们朴素的 Java 编程语言就能实现定时任务. 今天,栈长就介绍 3 种实现方法,教你如何使用 JDK 实现定时任务! 1. sleep 这也是我们最常用的 sleep 休眠大法,不只是当作休眠用,我们还可以利用它很轻松的能实现一个简单的定时任务. 实现逻辑: 新开一个线程,添加一个 for/ while 死循环,然后在死循环里面添加一个 sleep 休眠逻辑,让程序每隔 N 秒休眠再执行一次,这样就达到了一个简单定时任务的效果. 实现代码如下: private stat

  • Java结束线程的三种方法及该如何选择

    java常用的结束一个运行中的线程的方法有3中:使用退出标志,使用interrupt方法,使用stop方法. 1.使用退出标志 即在线程内部定义一个bool变量来判断是否结束当前的线程: public class ThreadSafe extends Thread { public volatile boolean exit = false; public void run() { while (!exit){ //do work } } public static void main(Stri

随机推荐