首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >StringTokenizer问题

StringTokenizer问题
EN

Stack Overflow用户
提问于 2013-10-17 07:34:08
回答 2查看 228关注 0票数 0

我在字符串令牌程序中面临一些问题,比如,如果我遵循代码,那么有一些问题我想知道。

代码语言:javascript
复制
public class Str_Tokenizer {
    public static void main(String args[]){
        StringTokenizer st=new StringTokenizer("this is him");
        while(st.hasMoreTokens()) {
            System.out.println(st.nextToken());
        }
    }
}

问题:

  1. 如果我不使用while(st.hasMoreTokens()),那么我如何使用StringTokenizer
  2. 如果我不使用st.nextToken,我应该使用什么?
EN

回答 2

Stack Overflow用户

发布于 2013-10-17 07:39:33

StringTokenizer是由于兼容性原因而保留的遗留类。

首先,没有那些hasMoreTokens()next()方法,就不能使用该类。

您不能循环它作为替代,因为hasMoreElements()返回与hasMoreTokens方法相同的值。nextElement()返回与nextToken方法相同的值,您不想使用它们。

其他明智的hasMoreElements nextElement 是可供选择的。

尽管它的使用是,但在新代码中不鼓励。建议任何寻求此功能的人使用String的拆分方法或java.util.regex包。

甚至StringTokenizer博士给出了如何避免使用它的示例

下面的示例说明如何使用String.split方法将字符串拆分为其基本标记:

代码语言:javascript
复制
 String[] result = "this is a test".split("\\s");
 for (int x=0; x<result.length; x++)
     System.out.println(result[x]);
票数 0
EN

Stack Overflow用户

发布于 2013-10-17 08:03:35

如果不想使用whilenextToken,请选择字符串拆分。这条路:

代码语言:javascript
复制
String s ="this is him";
        String[] s2 = s.split(" ");
        for (String str : s2) {
            System.out.println(str);
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19420751

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档