9.7 StringTokenizer类

9.7 StringTokenizer类StringTokenizer类:解析字符串单词和split方法不同的是,StringTokenizer对象不使用正则表达式做分隔标记有时候要分析字符串并将字符串分解成可独立使用的单词,这些单词称为语言符号。对于字符串“Iamstudent”,如果把空格作为该字符串的标记,那么该字符串有三个单词(语言符号)。对于字符串“I,am,student”,如果把逗号作为该字符串的标…


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

  • StringTokenizer类:解析字符串单词

 

和split方法不同的是,StringTokenizer对象不使用正则表达式做分隔标记

 

有时候要分析字符串并将字符串分解成可独立使用的单词,这些单词称为语言符号。对于字符串“I am student”,如果把空格作为该字符串的标记,那么该字符串有三个单词(语言符号)。对于字符串“I,am, student”,如果把逗号作为该字符串的标记,那么该字符串有三个单词(语言符号)。

 

当分析一个字符串并将字符串分解成可独立使用的单词时,可以使用java.util包中的StringTokenizer类,该类有两个常用的构造方法

  • StringTokenizer(String s):

为字符串s构造一个分析器,使用默认的分隔标记,即空格符(多个空格被看做一个空格),换行符,回车符,Tab符,进制符

  • StringTokenizer(String s,String delim):

为字符串s构造一个分析器,使用参数dilim中的字符的任意组合作为分隔标记。

如:

StringTokenizer s=new StringTokenizer(“we,are;student” , ”,;”);

注意:分隔标记的任意组合仍然是分隔标记

 

一个StringTokenizer对象称为一个字符串分析器,字符串分析器使用nextToken()方法逐个获取字符串中的语言符号(单词),每当调用nextToken()时,都将在字符串中获得下一个语言符号,每当获得一个语言符号时,字符串分析器负责计数的变量的值就自动减一,该计数变量的初始值等于字符串中的单词数目

通常用while循环逐个获取语言符号,为了控制循环,可以使用StringTokenizer类中的hasMoreTokens()方法,只要字符串中还有语言符号,即计数变量的值大于0,该方法就返回true,否则就false.

另外还可以随时让分析器调用countTokens()方法得到分析器中计数变量的值

 

import java.util.StringTokenizer;

public class p1 {
    public static void main(String args[]) {
        String s="市话费:28.89元,长途话费:128.87元,上网费:298元。";
        String delim="市话长途上网费元:,。";
        StringTokenizer fenxi=new StringTokenizer(s,delim);//用delim中的字符的任意组合作为分隔标记
        double total=0;
        while (fenxi.hasMoreTokens()){
            double money=Double.parseDouble(fenxi.nextToken());
            //数字组成的字符串,转化成double类型,再赋值给money
            System.out.println(money);
            total=total+money;
        }
        System.out.println(total);

    }
}

28.89
128.87
298.0
455.76

 

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

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

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

相关推荐

  • 什么是FEBS[通俗易懂]

    什么是FEBS[通俗易懂]FEBS后台权限管理系统FEBS是一个简单高效的后台权限管理系统。项目基础框架采用全新的JavaWeb开发框架——SpringBoot2.0.4,消除了繁杂的XML配置,使得二次开发更为简单

    2022年8月4日
  • 错误:org.apache.jasper.JasperException 无法为JSP编译类

    错误:org.apache.jasper.JasperException:无法为JSP编译类:16-Jun-202113:37:25.241严重[http-nio-8080-exec-4]org.apache.catalina.core.ApplicationDispatcher.invokeServlet[jsp]的Servlet.service()抛出异常 org.apache.jasper.JasperException:无法为JSP编译类:在生成的java文件中的第:[156

    2022年4月8日
  • app唤起小程序_微信小程序支付轮训

    app唤起小程序_微信小程序支付轮训在同一开放平台账号下的移动应用及小程序无需关联即可完成跳转,非同一开放平台账号下的小程序需与移动应用(APP)成功关联后才支持跳转。可在“管理中心-移动应用-应用详情-关联小程序信息”,为通过审核的

    2022年8月2日
  • 软件工程实验报告:图书管理系统

    软件工程实验报告:图书管理系统一、课程设计的目的与要求课程设计目的软件工程课程设计是学习软件工程课程后所进行的实践环节,目的是培养学生用工程化的思想和标准文档化的思想进行软件开发。本次课程设计通过开发一个小型实用的软件系统,亲身体验软件生命周期中的各个环节,以加深对软件工程课程的深入理解、锻炼独立分析、解决问题的能力。课程设计要求2.1课程设计准备1)复习软件工程课程的主要内容,熟练掌握软件生命周期的理论以及各阶段的基本概念。2)明确可行性分析、需求分析、设计、测试等阶段的基本任务和基本方法。3)熟练运用规范化的描述

    2022年8月22日
  • Redis内存碎片率

    Redis内存碎片率

    2021年11月9日
  • 在vscode中安装python第三方库

    在vscode中安装python第三方库打开vscode,点击终端,选择新建终端在弹出的窗口中输入以下命令:pipinstall第三方库的名称以安装numpy为例,输入pipinstallnumpy,点击回车,安装成功之后会显示如下信息:Requirementalreadysatisfied:numpyind:\python\lib\site-packages(1.20.3)已经满足的需求:numpy在d:python\lib\site-packages(1.20.3)…

    2022年10月7日

发表回复

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

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