我正在做一个练习(在任何人放弃之前不做作业)而且我被困在问题的最后部分。
问题是:
Write a program which will input a String from the keyboard, output the number of
seperate words, where a word is one or more characters seperated by spaces. Your
program should only count words as groups of characters in the rang A..Z and a..z
我可以通过我的代码看到第一部分没问题:
import java.util.Scanner;
public class Exercise10 {
public static void main(String[] args) {
String input;
int counter = 0;
Scanner keyboard = new Scanner(System.in);
System.out.println("Please enter your text: ");
input = keyboard.nextLine();
for(int i = 0; i < input.length(); i++){
if(input.charAt(i) == ' '){
counter++;
}
}
System.out.println(counter + 1);
keyboard.close();
}
}
但令我困惑的是:
Your program should only count words as groups of characters in the rang A..Z and
a..z
在这种情况下我该怎么办?
答案 0 :(得分:2)
我认为不应该将单独的标点字符视为单词。因此,即使one, two, three !
被空格分隔,短语!
也会有3个单词。
在空格上拆分字符串。对于每个令牌,检查字符;如果其中至少有一个在a..z
或A..Z
范围内,则递增计数器并转到下一个标记。
答案 1 :(得分:2)
我不会给你一个完整的答案,但这里有两个提示。
不是计算空格,而是分割字符串并循环遍历分割中的每个元素:
一旦你有String
分裂并且可以迭代元素,迭代每个元素中的每个字符以检查它是否是字母: