2015-11-08 30 views
0

例如,您发送一个字符串“哟怎么了?函数返回4个计数。计算没有任何循环的字符串中的单词数量

下面

是我写的:

public class CountString { 
    public int count(String str){ 
     int count=0; 
     for(int i=0; i<str.length();i++){ 
      if(str.charAt(i) == ' ') 
       count++; 
     } 
     System.out.printf("\n number of strings: "+ (count+1)); 
     return count+1; 
    } 
} 

是否有任何其他方法更快?现在,如何在不包括任何循环的情况下执行相同的工作(for,while,do-while)?

+0

您可以调用其他库方法来为您做,但这些方法包含循环。这是不可能的,去了一个没有循环的前期未知长度的东西。 –

回答

1

你可以这样做:

String s = "Yo what’s up dog?"; 
String[] arr = s.split(" "); 
System.out.println(arr.length); //prints 4 
+0

谢谢。我知道这是脱离主题,但有没有这种方法的C++等价物? –

1

没有循环! -

一个使用String#split

  1. 分裂与' '(空间)
  2. 获取字符串方式字数

代码片段 -

return str.trim().split(" "); 

另一种方式是使用StringTokenizer -

StringTokenizer st = new StringTokenizer(str); // default delimiter is space 
return st.countTokens(); 
相关问题