关于split与StringTokenizer的理解

关于split与StringTokenizer的理解

一.split

   依据匹配给定的正則表達式来拆分此字符串。此方法返回的数组包括此字符串的子字符串,每一个子字符串都由还有一个匹配给定表达式的子字符串终止,或者由此字符串末尾终止。数组中的子字符串按它们在此字符串中出现的顺序排列。假设表达式不匹配输入的不论什么部分,那么所得数组仅仅具有一个元素,即此字符串。

 

   String[] split(String regex,int limit)此方法的运用在API中得非常具体.

limit 參数控制模式应用的次数,因此影响所得数组的长度。假设该限制 n 大于 0,则模式将被最多应用 n - 1 次,数组的长度将不会大于 n,并且数组的最后一项将包括全部超出最后匹配的定界符的输入。假设 n 为非正,那么模式将被应用尽可能多的次数,并且数组能够是不论什么长度。假设 n 为 0,那么模式将被应用尽可能多的次数,数组能够是不论什么长度,并且结尾空字符串将被丢弃。

比如,字符串 "boo:and:foo" 使用这些參数可生成下面结果:

RegexLimit结果
:2{ "boo", "and:foo" }
:5{ "boo", "and", "foo" }
:-2{ "boo", "and", "foo" }
o5{ "b", "", ":and:f", "", "" }
o-2{ "b", "", ":and:f", "", "" }
o0{ "b", "", ":and:f" }

调用此方法的 str.split(regex, n) 形式与下面表达式产生的结果全然同样:

       Pattern.compile(regex).split(str, n)

 对于字符串的切割处理使用split是想当方便的...

二.StringTokenizer

   stringtokenizer 类同意应用程序将字符串分解为标记。在该类中包括了几个重要的方法.

   int CountTokens()  计算在生成异常之前能够调用此 tokenizer 的 nextToken 方法的次数。

   boolean hasMoreElements()返回与 hasMoreTokens 方法同样的值。

   boolean hasMoreTokens()測试此 tokenizer 的字符串中是否还有很多其它的可用标记。

   Object nextElement()除了其声明返回值是 Object 而不是 String 之外,它返回与 nextToken 方法同样的值。

   String nextToken()返回此 string tokenizer 的下一个标记。

 

 

    StringTokenizer 是出于兼容性的原因而被保留的遗留类(尽管在新代码中并不鼓舞使用它)。建议全部寻求此功能的人使用 Stringsplit 方法或java.util.regex 包。

 

三.一个面试题

   对一个字符串,单词之间以空格切割,试以单词为单位反序打印(如:I Love China结果为:China Love I)

 

   做的细想通常是将该字符串中的每一个单词保存在String[]里然后反序打印,这里就须要字符串切割的方法了...

   使用split:

  1. static String str = "I Love China";
  2. public static void splitTest() {
  3.     String[] result = str.split(" ",-1);
  4.         
  5.     for(int i = result.length - 1; i >= 0; i--) {
  6.     System.out.print(result[i] + " ");
  7.     }
  8. }

    使用StringTokenizer:

  1. static String str = "I Love China";
  2. public static void StringTokenizerTest() {
  3.     StringTokenizer st = new StringTokenizer(str);
  4.     String[] strArray = new String[st.countTokens()];
  5.         
  6.     for (int i = strArray.length - 1; i >= 0; i--) {
  7.         strArray[i] = st.nextToken() + " ";
  8.     }
  9.         
  10.     for(String s : strArray) {
  11.         System.out.print(s);
  12.     }
  13. }//看上去此方法有点多此一举,使用split更为方便

 

转载于:https://www.cnblogs.com/hrhguanli/p/4008063.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/420569.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot, thymeleaf 教你快速搭建网站

目录项目结构国际化curd操作404页面拦截器地址: https://github.com/sevenyoungairye/spring-boot-study员工管理员系统,页面用html thymeleaf模板数据库用的是map集合,没用真实的数据库项目结构 国际化 默认中文 中文,英文切换…

springboot 整合druid

目录1. maven依赖2. yml配置3. druid配置类编写4. 后台性能监控https://github.com/sevenyoungairye/spring-boot-studydruid优点&#xff1a;提供性能监控&#xff0c;配置灵活丰富 1. maven依赖 <!-- mysql驱动 springboot内置 --><dependency><groupId>…

Ubuntu 查看默认软件安装位置

tags: Linux 方法 1&#xff1a;在命令行输入&#xff1a;dpkg -L 软件包名&#xff1b;方法 2&#xff1a;在/var/cache/apt/archives找的你安装程序的包&#xff0c;然后用gdebi-gtk软件包名可以查看具体安装在什么位置。转载于:https://www.cnblogs.com/svitter/p/4011433.h…

maven 项目管理和构建工具

mvn1. maven 是什么2. maven能解决什么问题3. maven 需要配置和下载4. 使用eclipse创建maven项目5. xml依赖配置 作用范围6. maven的常用命令1. maven 是什么 Maven 在美国是一个口语化的词语&#xff0c;代表专家、内行的意思&#xff0c; Maven是一个项目管理工具&#xff0…

大数据----基于sogou.500w.utf8数据的MapReduce编程

目录 一、前言二、准备数据三、编程实现3.1、统计出搜索过包含有“仙剑奇侠传”内容的UID及搜索关键字记录3.2、统计rank<3并且order>2的所有UID及数量3.3、上午7-9点之间&#xff0c;搜索过“赶集网”的用户UID3.4、通过Rank&#xff1a;点击排名 对数据进行排序 四、参…

Java源代码分析与生成

源代码分析&#xff1a;可使用ANTLRANTLR是开源的语法分析器&#xff0c;可以用来构造自己的语言&#xff0c;或者对现有的语言进行语法分析。JavaParser 对Java代码进行分析CodeModel 用于生成Java代码(但对于已有代码的支持可能有问题) 转载于:https://www.cnblogs.com/laoni…

springboot 整合mybatis实现curd

springboot 整合mybatispom文件mvc 架构application.properties 扩展配置&#xff0c;druid配置类项目地址&#xff1a;https://github.com/sevenyoungairye/spring-boot-study/tree/main/springboot-mybatis-05pom文件 <!--整合mybatis--><dependency><groupId…

关于android 调用网页隐藏地址栏

首先创建项目&#xff0c;在main.xml里 添加好WebView控件R.id为webview1。 HelloWebView.java 代码 package liu.ming.com; import android.app.Activity;import android.os.Bundle;import android.view.KeyEvent;import android.webkit.WebView;import android.webkit.WebVie…

spring security 认证与权限控制

目录1. 使用授权和认证的必要性2. spring security 与 shiro 与 过滤器&#xff0c;拦截器3. 具体配置使用项目地址&#xff1a;https://github.com/sevenyoungairye/spring-boot-study/tree/main/springboot-security-061. 使用授权和认证的必要性 什么是安全框架&#xff0c…

CodeIgniter框架下载辅助函数的一个小bug

if (strpos($_SERVER[HTTP_USER_AGENT], "MSIE") ! FALSE){header(Content-Type: .$mime); // <---1)这里header(Content-Disposition: attachment; filename".$filename.");header(Expires: 0);header(Cache-Control: must-revalidate, post-check0, p…

win7 cmd命令行窗口 宽度无法变大 自由调整大小

偶然遇到了这个问题,百度查到了解决方案,执行一个bat批处理命令. mode con lines40 mode con cols160 color 250 cls cmd转载于:https://www.cnblogs.com/DreamDrive/p/4017970.html

springboot 与shiro整合

shiro~ shiro快速入门springboot 整合shiro核心目标清爽pom用户认证授权认证&#xff0c;与数据库交互shiro configuration核心controller 获取shiro 中的token页面控制功能的隐藏和显示https://github.com/sevenyoungairye/spring-boot-study/tree/main/springboot-shiro-07sh…

jvm内存设置

摘抄自&#xff1a;http://www.cnblogs.com/fyj218/archive/2011/07/19/2110570.html 在eclipse根目录下打开eclipse.ini&#xff0c;默认内容为&#xff08;这里设置的是运行当前开发工具的JVM内存分配&#xff09;&#xff1a;-vmargs-Xms40m-Xmx256m-vmargs表示以下为虚拟机…

swagger接口文档使用

swagger接口文档一&#xff0c;swagger简介前后端分离swagger 诞生二&#xff0c;springboot集成swagger依赖编写helloworld接口配置swagger > config 配置类测试运行三&#xff0c;配置swaggerswagger 配置扫描接口如何做到只在生产环境中启动swagger&#xff1f;配置api文…

异步任务,邮箱任务,定时任务

task~异步任务邮箱任务定时任务源码下载异步任务 开启多线程&#xff0c;我飞了。 package cn.bitqian.service;import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service;/*** 异步任务 目的 多线程&#xff0c;交给spring托…

iframe在ipad safari的显示

今 天要在web中嵌套一个网址或本地HTML&#xff0c;用到了iframe&#xff0c;在电脑上设置scrolling‘auto’&#xff0c;宽度高度&#xff0c;会有滚动条出现。而在 ipad上会全部显示整个网页的宽度高度。scrolling属性无效。原来在html5中的iframe已经只有剩下src的属性。 但…

IOS 开发中 Whose view is not in the window hierarchy 错误的解决办法

在 IOS 开发当中经常碰到 whose view is not in the window hierarchy 的错误&#xff0c;该错误简单的说&#xff0c;是由于 "ViewController" 还没有被加载&#xff0c;就调用该 ViewController 或者 ViewController 内的方法时&#xff0c;就会报这个错误。在不同…

maven传递依赖

目录1. 依赖传递2. 什么是依赖冲突3. 怎么解决4. 项目聚合maven是一个项目管理的工具&#xff0c;从项目的构建到项目开发&#xff0c;再到项目的测试&#xff0c;项目上线&#xff0c;都可一键管理。1. 那么&#xff0c;还有maven是如何管理项目中所用到的jar版本冲突&#xf…