如何在不使用Java循环的情况下查找字符串中的单词数?
答案 0 :(得分:3)
如果你想避免循环,你将不得不使用递归。
答案 1 :(得分:2)
尝试这样的事情:
int words = new java.util.StringTokenizer(myString," ").countTokens();
如果有效,请不要尝试,但应该。
答案 2 :(得分:1)
试试这个。这里肯定没有循环(假设String.length
没有迭代而String.substring
没有复制),甚至在幕后也没有,当然除了打印之外。
static int nSpaces ( String s ) {
int n = 0;
if ( s.length() > 0 ) {
if ( s.length() > 1 ) {
// Split it in half.
int center = s.length() / 2;
// Count each half.
n += nSpaces(s.substring(0, center))
+ nSpaces(s.substring(center));
} else {
// Just 1 character.
if ( s.charAt(0) == ' ' ) {
// It's a space.
n += 1;
}
}
}
//System.out.println(n+" spaces in '"+s+"'");
return n;
}
static int nWords ( String s ) {
return nSpaces (s) + 1;
}
public static void main(String args[]) {
String test = "Now is the time for all good men to come to the aid of the party.";
System.out.println("nWords(\""+test+"\") = "+nWords(test));
}
答案 3 :(得分:0)
1)您可以使用split
,然后获取结果数组的长度,但这将计算任何非空格(例如数字)作为单词的内容
2)Use a regex to match anything(你可以调整任何东西)在空格之间。
答案 4 :(得分:0)
在上面的每一步中,您都可以得到您正在寻找的答案,以解决您的要求如何需要(独特或重复)