-4

我已经可以数元音、辅音、空格和特殊字符了。我必须使用一些初学者技术来做到这一点。[编辑:鉴于最后一条语句和以下代码,这个问题听起来像是对家庭作业的帮助] 没什么太复杂的。

import java.util.Scanner;

 public class JBlahBlah
 {
static Scanner sc = new Scanner(System.in                                                      );

public static void main(String[] Theory)
{

    JWaffles MyWaffles = new JWaffles();

    MyWaffles.ProgramHeading();

    System.out.println("Enter a string:"                                                       );
    String SentenceContents = sc.nextLine(                                                     );

    int VowelCount = 0,ConsonantCount = 0,WordCount = 0,SpaceCount = 0,SpecialCharCount = 0     ;

    for (int Bat = 0; Bat < SentenceContents.length(); Bat++)
    {
        char Vowels = SentenceContents.charAt(Bat         );
        if (      (Vowels == 'A') || (Vowels == 'a'       )
               || (Vowels == 'E') || (Vowels == 'e'       )
               || (Vowels == 'I') || (Vowels == 'i'       )
               || (Vowels == 'O') || (Vowels == 'o'       )
               || (Vowels == 'U') || (Vowels == 'u'      ))
        VowelCount++;

        char Consonants = SentenceContents.charAt(Bat);
        if (      (Consonants == 'B') || (Consonants == 'b')
               || (Consonants == 'C') || (Consonants == 'c')
               || (Consonants == 'D') || (Consonants == 'd')
               || (Consonants == 'F') || (Consonants == 'f')
               || (Consonants == 'G') || (Consonants == 'g')
               || (Consonants == 'H') || (Consonants == 'h')
               || (Consonants == 'J') || (Consonants == 'j')
               || (Consonants == 'K') || (Consonants == 'k')
               || (Consonants == 'L') || (Consonants == 'l')
               || (Consonants == 'M') || (Consonants == 'm')
               || (Consonants == 'N') || (Consonants == 'n')
               || (Consonants == 'P') || (Consonants == 'p')
               || (Consonants == 'Q') || (Consonants == 'q')
               || (Consonants == 'R') || (Consonants == 'r')
               || (Consonants == 'S') || (Consonants == 's')
               || (Consonants == 'T') || (Consonants == 't')
               || (Consonants == 'V') || (Consonants == 'v')
               || (Consonants == 'W') || (Consonants == 'w')
               || (Consonants == 'X') || (Consonants == 'x')
               || (Consonants == 'Y') || (Consonants == 'y')
               || (Consonants == 'Z') || (Consonants == 'z') )

        ConsonantCount++;

        char Spaces = SentenceContents.charAt(Bat);
                    if ( (Spaces == ' ') )

        SpaceCount++;

        char SpecialCharacters = SentenceContents.charAt(Bat);
                    if (      (SpecialCharacters == '!') || (SpecialCharacters == '@'   )
                           || (SpecialCharacters == '#') || (SpecialCharacters == '$'   )
                           || (SpecialCharacters == '%') || (SpecialCharacters == '^'   )
                           || (SpecialCharacters == '&') || (SpecialCharacters == '*'   )
                           || (SpecialCharacters == '(') || (SpecialCharacters == ')'   )
                           || (SpecialCharacters == '-') || (SpecialCharacters == '_'   )
                           || (SpecialCharacters == '+') || (SpecialCharacters == '='   )
                           || (SpecialCharacters == ',') || (SpecialCharacters == '<'   )
                           || (SpecialCharacters == '.') || (SpecialCharacters == '>'   )
                           || (SpecialCharacters == '?') || (SpecialCharacters == '/'   )
                           || (SpecialCharacters == '"') || (SpecialCharacters == ';'   )
                           || (SpecialCharacters == ':') || (SpecialCharacters == '{'   )
                           || (SpecialCharacters == '[') || (SpecialCharacters == '}'   )
                           || (SpecialCharacters == ']') || (SpecialCharacters == '~'   )
                           || (SpecialCharacters == '`') || ((SpecialCharacters == '1'  )
                           || (SpecialCharacters == '2') || (SpecialCharacters == '3'   )
                           || (SpecialCharacters == '4') || (SpecialCharacters == '5'   )
                           || (SpecialCharacters == '6') || (SpecialCharacters == '7'   )
                           || (SpecialCharacters == '8') || (SpecialCharacters == '9'   )
                           || (SpecialCharacters == '|')                               ))

        SpecialCharCount++;
    }
    System.out.println("There are " + VowelCount + " vowels in this sentance"                  );
    System.out.println("There are " + ConsonantCount + " consonants in this sentance"          );
    System.out.println("There are " + SpaceCount + " spaces in this sentance"                  );
    System.out.println("There are " + SpecialCharCount + " special characters in this sentance");

}
}

我怎样才能让程序打印字数?如果它们在单词之间有几个空格怎么办?

4

3 回答 3

3

以下是使用 API 计算每种字符类型的方法:

int spaceCount = sentence.length() - sentence.replaceAll(" ", "").length();
int vowelCount = sentence.length() - sentence.replaceAll("(?i)[aeiou]", "").length();
int consonantCount = sentence.length() - sentence.replaceAll("(?i)(?=[a-z])[^aeiou]", "").length();
int specialCount = sentence.length() - sentence.replaceAll("(?i)[^a-z ]", "").length();
int wordCount = sentence.trim().split("\\s+").length;

尽管您可能认为这不是“教您如何编程”,但实际上是:学习语言的一部分是通过让语言为您完成繁重的工作来学习不编码的内容。

如果你不熟悉正则表达式,你可能想访问这个网站

于 2012-07-08T19:07:23.033 回答
0

使用java.text.BreakIterator包中的 BreakIterator 类

使用 BreakIterator 您可以在句子中找到单词的数量...

import java.text.BreakIterator;

BreakIterator boundary = BreakIterator.getWordInstance();

BreakIterator 能够做更多的事情......比如查找字符、行、句子等的数量......

有关详细信息,请参阅此链接:

http://docs.oracle.com/javase/6/docs/api/java/text/BreakIterator.html

于 2012-07-08T18:58:48.813 回答
0

如果它们在单词之间有几个空格怎么办?

使用它来用一个空格替换两个或多个空格,然后继续你的算法

String stringOnlyOneSpace = stringTwoOrMoreSpaces.trim().replaceAll(" +", " ");
于 2012-07-08T18:58:57.990 回答