java StringTokenizer类

类型概述

StringTokenizer类主要用于分隔字符串,将一个String分成多个Token。

构造方法

StringTokenizer(String str)

根据指定的字符串创建一个StringTokenizer对象,默认以 \t \r \n \f为分隔符。

StringTokenizer(String str, String delim)

根据指定的字符串创建一个StringTokenizer对象并指定分隔符。

StringTokenizer(String str, String delim, boolean returnDelims)

根据指定的字符串创建一个StringTokenizer对象并指定分隔符,以及是否返回分隔符。

对象方法

1、countTokens函数
int countTokens()

计算分隔的token数,相当于调用nextToken函数的次数。

2、hasMoreTokens函数
boolean hasMoreTokens()

判断是否还有其他的Token,如果返回True,那么nextToken函数就会返回下一个Token。

3、nextToken函数
String nextToken()

返回下一个Token。

使用示例

实现一个比Scanner高效的解析类InputReader,当输入数据越多时,InputReader的效率比Scanner高很多。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Test {
    static class InputReader{
        private BufferedReader bufferedReader;
        private StringTokenizer stringTokenizer;

        InputReader(InputStream in){
            bufferedReader = new BufferedReader(new InputStreamReader(in));
            stringTokenizer = new StringTokenizer("");
        }

        public String next() throws IOException{
            while(!stringTokenizer.hasMoreTokens()){
                stringTokenizer = new StringTokenizer(bufferedReader.readLine());
            }
            return stringTokenizer.nextToken();
        }
    }
    public static void main(String[] args) throws IOException {
        InputReader inputReader = new InputReader(System.in);
        String s = inputReader.next();
        System.out.println(s);
    }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Java中的StringTokenizer类是一个用于分解字符串的工具类。它允许您将一个字符串分解成多个标记(tokens),并且可以指定分隔符。 StringTokenizer类的构造函数有多个重载形式,其中最常用的是: public StringTokenizer(String str, String delim) 其中,str是要分解的字符串,delim是分隔符。如果不指定分隔符,则默认使用空格、制表符、换行符等空白字符作为分隔符。 StringTokenizer类有三个主要的方法: 1. hasMoreTokens():判断是否还有更多的标记。 2. nextToken():返回下一个标记。 3. countTokens():返回剩余的标记数。 使用StringTokenizer类可以方便地对字符串进行分解和处理,特别是在需要处理大量文本数据时,它可以提高程序的效率。 ### 回答2: java stringtokenizer类是一个基于字符串分隔符的分词器类。一个字符串可以有多个分隔符,而这些分隔符可以是不止一个字符的字符串。它允许程序员按照指定的分隔符对给定的字符串进行分割,返回一个分割后的字符串数组或逐个返回分隔符连接的标记。Java示例中常用的分隔符是空格字符、逗号和冒号。 使用java stringtokenizer类,程序员可以轻松处理字符串,将其分解成若干单词或子字符串。相对于截取字符串的方式,它具有更明确、更灵活、更高效以及更容易调试的特点。 这个类通常以两个参数的构造函数来调用。第一个参数是要分解的字符串,第二个参数是包含要用作分隔符的字符的字符串。在构造函数中,程序员可以选择在分割后返回空白标记,并选择将分隔符作为标记包含在返回的数组或逐个返回的标记中。 如果不使用Java stringtokenizer类,程序员仍可以使用String类和它所包含的substring()方法和indexOf()方法来完成对字符串的分割,但java stringtokenizer类提供了一种更方便和容易使用的方式来处理字符串。 在java中,需要注意的是,java stringtokenizer类在多线程环境下并不是线程安全的。如果多个线程同时使用同一个stringtokenizer实例,则可能会导致不可预期的结果。因此,建议在多线程环境下使用java.util.Scanner类来进行字符串分割。 ### 回答3: java中的StringTokenizer类是一个用于将字符串分解为若干个标记的工具类。它可以将一个字符串根据给定的分隔符分解成多个字符串,也可以将一个字符串根据空格、制表符或换行符等默认分隔符分解成多个字符串,起到了非常方便的作用。 StringTokenizer类的主要方法有三个,分别为构造方法、nextToken()和hasMoreTokens()。其中构造方法有两个重载形式,一种参数是(String str),另外一种参数是(String str,String delimiters),前者将使用默认的分隔符进行字符串分解,而后者则将指定的分隔符用于字符串分解。hasMoreTokens()方法用于判断是否还有标记未被分解,nextToken()方法用于获取下一个标记内容。 使用StringTokenizer类需要结合循环来实现整个字符串的分割,下面是一个使用默认分隔符进行字符串分割的示例代码: ``` String str = "I am a boy"; StringTokenizer st = new StringTokenizer(str); while(st.hasMoreTokens()){ System.out.println(st.nextToken()); } ``` 上述代码会输出以下内容: I am a boy 在使用StringTokenizer类时,需要注意以下几点: 1. 如果字符串中存在多个连续分隔符,StringTokenizer默认将把它们视为一个分隔符,也就是会输出空内容的标记。如果不希望输出空内容的标记,可以使用hasMoreElements()方法代替hasMoreTokens()方法。 2. StringTokenizer类属于遗留API,在Java 1.5之后推荐使用String.split()方法代替。 3. StringTokenizer类是线程不安全的,如果希望在多线程环境下使用,需要做好同步处理。 Java中的StringTokenizer类可以快速地将字符串按照分隔符进行拆分,并且使用起来也非常简单。在一些字符串操作中,StringTokenizer类也极为实用。不过,需要注意的是,由于StringTokenizer类是一个遗留的API,使用时需要注意它的一些限制和安全性问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不负韶华ღ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值