对于专门从事Web应用程序的Java程序员来说,将字符串拆分为数组是一项非常常见的任务。 在Web应用程序中,很多时候我们必须以CSV格式传递数据,或者基于$ , #或其他字符等其他分隔符来分隔数据。

在进一步使用此数据之前,必须将其拆分为单独的字符串标记。 在给定的示例中,我们将学习split string into arraylist或array。

1. Java String split – StringTokenizer

在Java中使用StringTokenizer拆分字符串确实很容易使用,并且在Java中已经存在很长时间了。

1.1. Single delimiter

用空格分割字符串的 Java程序示例 。String str = "I am sample string and will be tokenized on space";

StringTokenizer defaultTokenizer = new StringTokenizer(str);

System.out.println("Total number of tokens found : " + defaultTokenizer.countTokens());

while (defaultTokenizer.hasMoreTokens())

{

System.out.println(defaultTokenizer.nextToken());

}

System.out.println("Total number of tokens found : " + defaultTokenizer.countTokens());

Program output.Total number of tokens found : 10

I

am

sample

string

and

will

be

tokenized

on

space

Total number of tokens found : 0

我们看到开始时令牌的数量为10,并且在获取所有令牌后,计数减少为0。

1.2. Multiple delimiters

这是真正的好用例。 它允许您在分隔符可以不止一个的情况下分割字符串。

String url = "https://howtodoinjava.com/java-initerview-questions";

StringTokenizer multiTokenizer = new StringTokenizer(url, "://.-");

while (multiTokenizer.hasMoreTokens())

{

System.out.println(multiTokenizer.nextToken());

}

Program output.https

howtodoinjava

com

java

initerview

questions

As java docs says, StringTokenizer is a legacy class that is retained for compatibility reasons although its use is discouraged in new code. It is recommended that anyone seeking this functionality use the split method of String or the java.util.regex package instead.

2. Java split string – String.split()

与使用StringTokenizer相比, string array形式返回,我们可以随意使用它。

用定界符逗号分隔java中的字符串的程序。String[] tokens = "I,am ,Legend, , oh ,you ?".split(",");

for (String token : tokens)

{

System.out.println(token);

}

Program output.I

am

Legend

//Empty token

oh //Space in starting

you ?

上面的代码确实易于使用,但是正如我们在输出中看到的那样,在处理令牌时需要格外小心。 它返回空令牌,并且默认情况下不修剪令牌。 您需要逐个标记地执行这些特定的处理标记。

3. String split – StringUtils.split()

StringUtils.split()与上述方法非常相似,它还返回String[]作为输出。 我们需要像前面的代码中那样处理字符串数组。 唯一的好处就是code is faster 。String[] tokens = StringUtils.split("I,am ,Legend, , oh ,you ?",",");

for (String token : tokens)

{

System.out.println(token);

}

Program output.I

am

Legend

//Empty token

oh //Space in starting

you ?

4. Split string – Guava Splitter

Splitter最好。 在编写时看起来不错,也可以重复使用。 您创建一个拆分器,并根据需要多次重复使用它。 因此,对于类似的用例,它有助于实现分离器应用程序的统一逻辑。

另一个好处是,它在构建分离器本身时还提供了一些有用的方法,从而消除了创建令牌本身后的大量后续工作,如我们在上面的示例中看到的。

要构建漂亮的拆分器,请编写如下代码:Splitter niceCommaSplitter = Splitter.on(',').omitEmptyStrings().trimResults();

现在,您可以根据需要在代码中的任何位置使用它:Splitter niceCommaSplitter = Splitter.on(',').omitEmptyStrings().trimResults();

Iterable tokens2 = niceCommaSplitter.split("I,am ,Legend, , oh ,you ?");

for(String token: tokens2){

System.out.println(token);

}

Program output.I

am

Legend

oh

you ?

或者,您可以直接将其作为maven dependency包括在内。

com.google.guava

guava

17.0

如果您对将字符串拆分为数组这个非常具体的问题有其他更好的解决方案,请分享您的想法。

tokenize java,Java split string - Java tokenize string examples - 入门小站-rumenz.com相关推荐

  1. string to xml java_Java String to XML - Parse String to XML DOM Example - 入门小站-rumenz.com

    在Java中,XML用org.w3c.dom.Document对象表示. 在本XML教程中,我们将学习-将XML string to XML转换string to XML文档 将XML文件内容转换为X ...

  2. 【Java】split()和java.util.StringTokenizer分割字符串的性能比较

    原始版本 import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; ...

  3. java list find方法_Java 8 Stream - Find Max and Min from List - 入门小站-rumenz.com

    学习使用查找最小和最大日期,数字,字符,字符串或对象. Find Min or Max Date 要从日期流中获取最大或最小日期 ,可以使用Comparator.comparing( LocalDat ...

  4. java str.split(quot;cquot;),你真的完全理解了String的split方法?之二

    java中在处理String字符串时,很多场合都要使用split方法 本文就全面剖析 split(String regex, int limit)的用法 先来看看API: / ** * @param ...

  5. java 方法特点是什么_Java String 的特点是什么?它有哪些重要的方法?

    以主流的 JDK 版本 1.8 来说,String 内部实际存储结构为 char 数组,源码如下: public final classStringimplements java.io.Seriali ...

  6. Java编程的逻辑 (29) - 剖析String

    ​本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http: ...

  7. 【java学习】常用实体类--String、StringBuffer\StringTokenizer

    文章目录 参数传递 String String类有两个常用构造方法: 引用String常量 String类的常用方法 StringBuffer和StringBuilder StringBuilder中 ...

  8. php byte stringbuffer,重拾java基础(十三):String姐妹StringBuffer、StringBuilder总结

    重拾java基础(十三):String姐妹StringBuffer.StringBuilder总结 一.StringBuffer类概述buffer:缓冲 2. 字符串缓冲区,跟String非常相似,都 ...

  9. java 调用弗雷_JAVA API(一)String类和StringBuffer类

    1.String类和StringBuffer类 在程序中经常会用到字符串,所谓的字符串就是指一连串的字符,它是由多个单个字符连接而成的.字符串中可以包含任意字符,这些字符必须包含在一对双引号" ...

  10. JAVA基础(12.Java中的常用类String)

    目录 1.前言 2.日期(时间)相关类 2.1 日期类的应用场景 2.1.1Java中的日期相关的几个类 3. Java中的常用类学习方式 3.1 什么是常用类?为什么要学习? 3.2 怎么使用Jav ...

最新文章

  1. Python 21 Flask(二)上下文管理详解
  2. 通用的异步处理类和进度通知类及其示例
  3. flink写入hive的时区问题
  4. 费马大定理,集惊险与武侠于一体
  5. 前端工程师,会是一群高情商的程序猿
  6. Oracle]高效的SQL语句之分析函数
  7. 小米5G手机为什么如此便宜?卢伟冰解释定价原因
  8. SIP中第三方呼叫控制(3PCC)建立流程
  9. H.264学习笔记2——帧内预测
  10. Python/Java程序员面试必备常用问题解析与答案
  11. 【Matlab学习笔记】【图像滤波去噪】以-4,-8为中心的拉普拉斯滤波器
  12. Python 成仙之路
  13. Dan 计划:重新定义人生的10000个小时
  14. GBIC模块、SFP模块、SFF模块介绍
  15. ip地址解析,ip归属地识别
  16. WEB云安全技术应用篇
  17. Python实现轮盘抽奖小程序(带界面)
  18. 手机中SN、MEID、IMEI的意思
  19. 从金蝶云星空到旺店通·旗舰奇门通过接口配置打通数据
  20. Kafka手动提交偏移量的作用到底是什么???

热门文章

  1. 企业生产计划排产该如何制定
  2. Linux 目录中的etc是什么缩写
  3. iOS闪退日志的收集和解析
  4. 集成显卡和独立显卡的区别
  5. 多线程编程与资源同步API和示例
  6. JavaScript获取当前时区 时间转换 (实用)
  7. mac被限制什么意思_苹果ip完美解决电脑ip被限制问题
  8. hive中reduce类函数说明
  9. 我的世界服务器扔东西显示垃圾箱,我的世界:MC里6个隐藏的垃圾桶,第一个可回收,第二个很常见?...
  10. 在类中不添加注释。影响可读性。代码繁杂。