-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

単語の間にいくつかのスペースがある場合はどうなりますか?

これを使用して、2つ以上のスペースを1つのスペースのみに置き換えてから、アルゴリズムを続行します

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