2012-07-08 46 views
-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"); 

} 
} 

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

回答

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; 

虽然你可能会认为这不是“教你如何编程”,它实际上是:学习语言的一部分是学习什么而不是通过让语言重为你解除。

如果你不熟悉正则表达式,你可能想参观这个site

+0

我已经做了那部分... – user1509462 2012-07-08 19:13:13

+0

查看编辑答案 – Bohemian 2012-07-08 19:17:18

0

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

使用的BreakIterator你可以找到号在句子中词汇的...

import java.text.BreakIterator; 

BreakIterator boundary = BreakIterator.getWordInstance(); 

的BreakIterator能够做更多的.. 喜欢找到数字,行,句子等数量...

看到这个链接的进一步细节:

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

+0

是我应该把这个在我的代码? – user1509462 2012-07-08 20:14:05

+0

考虑它将一个方法,这将采取一个句子,并返回的话...... – 2012-07-09 02:54:27

0

,如果他们有什么好几个空格在单词之间?

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

String stringOnlyOneSpace = stringTwoOrMoreSpaces.trim().replaceAll(" +", " "); 
相关问题