Q17. Write a method named wordCount that accepts a String as
its parameter and returns the number of words in that string. Words
are separated by spaces.
wordCount(“the quick brown fox”) returns 4
Q17. 本實驗要求以字符串爲參數輸出詞數。詞之間以空格隔開。並進一步討論避開超出數組範圍對計詞數的影響。
import java.util.*;
import java.util.Scanner;
public class Q17 {
public static void main(String[] args) {
// TODO Auto-generated method stub
/*Scanner console =new Scanner (System.in);
String sentence = console.nextLine();*/
//輸入字符串 此處以" a quick brown fox "爲樣本
String sentence = " a quick brown fox ";
int result = wordCount(sentence);
System.out.println(result);
}
public static int wordCount(String sentence) {
char [] sentenceChar = sentence.toCharArray();
//System.out.println(Arrays.toString(sentenceChar));
int count= 0;
char [] sentenceCharplus = new char[sentenceChar.length+1];
sentenceCharplus[sentenceChar.length]=' ';
//生成一個比原字符串多一位' '的char數組 ,避免i+1超出數組範圍
for (int a =0;a<sentenceChar.length;a++) {
sentenceCharplus[a]=sentenceChar[a];
}
//System.out.println(Arrays.toString(sentenceCharplus));
//System.out.println(sentenceChar.length+1);
for (int i=0;i<sentenceCharplus.length-1;i++) {
//i的範圍取length-1以避免超出範圍
if (sentenceCharplus[i]==' '&&sentenceCharplus[i+1]!=' ') {
//當空格與字符相間時,count加一
count++;
}
}
return count;
}
}