Java String输出限制String到Alphabet的范围

时间:2013-10-10 11:39:20

标签: java string

我正在做一个练习(在任何人放弃之前不做作业)而且我被困在问题的最后部分。

问题是:

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

在这种情况下我该怎么办?

2 个答案:

答案 0 :(得分:2)

我认为不应该将单独的标点字符视为单词。因此,即使one, two, three !被空格分隔,短语!也会有3个单词。

在空格上拆分字符串。对于每个令牌,检查字符;如果其中至少有一个在a..zA..Z范围内,则递增计数器并转到下一个标记。

答案 1 :(得分:2)

我不会给你一个完整的答案,但这里有两个提示。

不是计算空格,而是分割字符串并循环遍历分割中的每个元素:

Documentation

一旦你有String分裂并且可以迭代元素,迭代每个元素中的每个字符以检查它是否是字母:

Hint