Java 将任何字符串的令牌计数显示为1

Java 将任何字符串的令牌计数显示为1,java,string,Java,String,我尝试在java中使用countTokens方法,它只显示1作为我作为字符串给出的任何输入的无标记 import java.util.*; public class uhu { public static void main(String[] args) { System.out.println("Hit n"); Scanner sc = new Scanner(System.in); try { int n = sc.nextInt();//

我尝试在java中使用countTokens方法,它只显示1作为我作为字符串给出的任何输入的无标记

import java.util.*;

public class uhu {

  public static void main(String[] args) {

    System.out.println("Hit n");
    Scanner sc = new Scanner(System.in);
    try {
        int n = sc.nextInt();//scan the size of the array
        String[] str=new String[n];
        System.out.println("Enter elements");
        sc.nextLine();
        for (int i = 0; i < n; i++) //scanning the elements 
        {
            str[i]=sc.nextLine();
        }
        for (int i = 0; i < n; i++) //printing the count of tokens
        {
            StringTokenizer st=new StringTokenizer(str[i]);
            System.out.println("Count of tokens for "+i+"string is :"+st.countTokens());
        }
    } finally {
        if (sc != null)
            sc.close();
    }

  }

}

现在不鼓励使用StringTokenizer。改用String.split

由于默认情况下,StringTokenizer使用空格拆分字符串,因此使用split将使用空格拆分字符串。默认情况下,StringTokenizer使用空格字符、制表符、换行符、回车符和换行符的分隔符列表

您的输入字符串可能不包含任何这些字符,从而导致令牌计数为1


尝试用空格分隔输入字符串。

41分钟前,您发布了另一个问题,要求您具体说明,并提供输入、预期输出和实际输出。对于这个问题,以及你将来要问的所有问题,都要这样做。这并不能回答问题。仅仅因为它被劝阻并不意味着它不能被使用并且有一个bug。