4. stringtokenizer类的主要用途是啥? 该类有哪几个重要的方法?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4. stringtokenizer类的主要用途是啥? 该类有哪几个重要的方法?相关的知识,希望对你有一定的参考价值。

参考技术A StringTokenizer 是一个Java的类,属于 java.util 包,用来分割字符串和枚举类型。

StringTokenizer 构造方法:
1. StringTokenizer(String str) :构造一个用来解析 str 的 StringTokenizer 对象。使用默认的分隔符:空格("")、制表符(\t)、换行符(\n)、回车符(\r)。
2. StringTokenizer(String str, String delim) :构造一个用来解析 str 的 StringTokenizer 对象,并提供一个指定的分隔符。
3. StringTokenizer(String str, String delim, boolean returnDelims) :构造一个用来解析 str 的 StringTokenizer 对象,并提供一个指定的分隔符,同时,指定是否返回分隔符。
StringTokenizer 常用方法:
1. int countTokens():返回nextToken方法被调用的次数。可以用来计算字符串分割单元的个数。
2. boolean hasMoreTokens():返回是否还有分隔符。可以用来判断,字符串分割有没有处理完。
3. boolean hasMoreElements():判断枚举 (Enumeration) 对象中是否还有数据。用来判断枚举类型有没有处理完。
4. String nextToken():返回从当前位置到下一个分隔符的字符串。
5. Object nextElement():返回枚举 (Enumeration) 对象的下一个元素。
6. String nextToken(String delim):与 4 类似,以指定的分隔符返回结果。

Java内部类的用途是啥?嵌套类和内部类是一样的吗? [复制]

【中文标题】Java内部类的用途是啥?嵌套类和内部类是一样的吗? [复制]【英文标题】:What are the uses of inner classes in Java? Are nested classes and inner classes the same? [duplicate]Java内部类的用途是什么?嵌套类和内部类是一样的吗? [复制] 【发布时间】:2011-02-25 20:49:46 【问题描述】:

可能重复:Java inner class and static nested class

Java 内部类的用途是什么?嵌套类和内部类是一样的吗?

【问题讨论】:

【参考方案1】:

不,它们不一样:内部类不是static

JLS 8.1.3 Inner Classes and Enclosing Instances

inner 类是没有显式或隐式声明为静态的嵌套类。

另请参阅 Joe Darcy 的以下图表:

Joseph D. Darcy's Oracle Weblog - Nested, Inner, Member, and Top-Level Classes


相关问题

Java inner class and static nested class

【讨论】:

【参考方案2】:

另一个答案很好地解决了差异。关于它们的用法/相关性,这是我的看法:

匿名类:方便生产力

它们很容易实现回调,无需创建新的 named 类。

button.addActionListener(
      new ActionListener() 
         public void actionPerformed( ActionEvent e ) 
              frame.dispose();
         
      
);

它们对于线程(例如匿名Runnable)和其他一些类似的模式也很方便。

静态嵌套类:方便封装

静态嵌套类本质上和普通类一样,只是它们的名字是OuterClass.StaticNestedClass,你可以使用修饰符。因此,它提供了某种形式的封装,而***类无法完全实现。

LinkedList 为例,您希望类 Node(仅在内部使用)在包视图中不可见。使其成为静态嵌套类,使其完全位于LinkedList 内部。

内部类:方便所有权封装

内部类的instance 可以访问其封闭类instance 的字段。再想想链表,想象Node 是一个内部类:

public class LinkedList 
  private Node root = null;

  public class Node 
    private Object obj;
    private Node next;

    ...

    public void setAsRoot() 
       root = this;
    
  

  public Node getRoot() 
    return root;
  

  public void setRoot( Node node ) 
    root = node;
  


属于LinkedList 的每个Node 实例都可以直接访问它。列表与其节点之间存在隐含的所有权关系;该列表拥有它的节点。如果使用常规类实现相同的所有权关系,则需要额外的代码。

见Achieve better Java code with inner and anonymous classes

【讨论】:

我喜欢这个答案,从 .net 世界到没有代表存在的世界,内部类可以证明是有用的......

以上是关于4. stringtokenizer类的主要用途是啥? 该类有哪几个重要的方法?的主要内容,如果未能解决你的问题,请参考以下文章

jdk源码阅读之-2.30.StringTokenizer·4

你只会用 split?试试 StringTokenizer,性能可以快 4 倍!!

说说反射的用途及实现

你只会用 split?试试 StringTokenizer,性能可以快 4 倍!!

OC runtime的4种用途

在Java中map类的主要作用