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; } }