我尝试在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();
}
}
}
答案 0 :(得分:0)
现在不鼓励使用StringTokenizer。请改用String.split()
http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#split(java.lang.String)
因为默认情况下StringTokenizer使用空格分割字符串,所以使用split(&#34;&#34;)将使用空格打破字符串
答案 1 :(得分:0)
默认情况下,StringTokenizer
使用空格字符,制表符,换行符,回车符和换页符的分隔符列表。
您的输入String
可能不包含任何这些字符,导致令牌数为1
。
尝试用空格分隔输入String
。