有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用split的java标记化输入

我使用StringToken类来标记我的输入,如下所示:

StringTokenizer tokens = new StringTokenizer(input); 
n = tokens.countTokens();
a = tokens.nextToken()

但是,我发现split更有效,如果我使用split,有没有办法获得令牌数(而不是counttoken)和下一个令牌数


共 (3) 个答案

  1. # 1 楼答案

    假设你有String abcd = "a-b-c-d"; 你可以对这个进行拆分。你会得到:String[] stringArray = abcd.split("-"); 如果有StringArray,可以使用stringArray.length获得大小(并将结果保存到int)。 如果想要获得“下一个令牌”,只需在数组上迭代:

    for (int i = 0; i < stringArray.length; i++) {
        String tempString = stringArray[i];
        //do something with the String
    }
    

    这就是你要找的吗

  2. # 2 楼答案

    这可能就是你想要的:

    String str = "A,B,C,D";
    String[] token = str.split(",");
    ArrayList<String> tokList = new ArrayList<String>(Arrays.asList(token));
    Iterator<String> tok = tokList.iterator();
    
    while(tok.hasNext())                //Check whether next element exsit
        System.out.print(tok.next());   //Print out the token string 1 by 1
    

    程序输出:ABCD

  3. # 3 楼答案

    你可以这样做:

    String str = "aa,bb,cc,dd";
    String[] token = str.split(",");
    
    System.out.println("Size of tokens: " + token.length);
    
    //Printing out all tokens
    for(int x=0; x<token.length; x++)  //A few different ways to print out the token values
        System.out.println(token[x]);
    

    string.split()方法将返回一个string array。现在,您可以将每个令牌元素视为字符串数组元素。在上面的代码中,token只是一个字符串数组

    输出:

    Size of tokens: 4
    aa
    bb
    cc
    dd
    

    这就是你想要的吗