• java StringTokenizer类


    类型概述

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

    构造方法

    StringTokenizer(String str)
    
    • 1

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

    StringTokenizer(String str, String delim)
    
    • 1

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

    StringTokenizer(String str, String delim, boolean returnDelims)
    
    • 1

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

    对象方法

    1、countTokens函数

    int countTokens()
    
    • 1

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

    2、hasMoreTokens函数

    boolean hasMoreTokens()
    
    • 1

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

    3、nextToken函数

    String nextToken()
    
    • 1

    返回下一个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);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
  • 相关阅读:
    随机数生成过慢导致系统阻塞怎么办?
    Windows Server 2016
    R-Drop论文复现与理论讲解
    网络性能监控无法告诉你的 6 件事
    ArrayList常用方法
    docker搭建nginx+php-fpm
    Pyecharts教程(七):使用pyecharts创建堆叠柱状图的示例
    动捕设备如何推动线下活动以虚拟主持人创新升级互动形式
    【面试宝典】MyBatis系列面试真题
    【开源库推荐】go-linq 强大的语言集成查询库如,ORM一般丝滑处理内存数据
  • 原文地址:https://blog.csdn.net/weixin_49346755/article/details/125899624