2014-12-31 5 views
2

Мне было интересно, как я напишу метод для подсчета количества слов и числа слов каждого слова , например, если вход «Голубое небо» взамен я беру что-то, что показывает мне там было 3 слова 3 букв 4 буквы 3 буквыКак посчитать букву каждого слова

i'v нашел этот код уже

public static int countWords(String s){ 

    int wordCount = 0; 

    boolean word = false; 
    int endOfLine = s.length() - 1; 

    for (int i = 0; i < s.length(); i++) { 
     // if the char is a letter, word = true. 
     if (Character.isLetter(s.charAt(i)) && i != endOfLine) { 
      word = true; 
      // if char isn't a letter and there have been letters before, 
      // counter goes up. 
     } else if (!Character.isLetter(s.charAt(i)) && word) { 
      wordCount++; 
      word = false; 
      // last word of String; if it doesn't end with a non letter, it 
      // wouldn't count without this. 
     } else if (Character.isLetter(s.charAt(i)) && i == endOfLine) { 
      wordCount++; 
     } 
    } 
    return wordCount; 
} 

Я очень признателен за любую помощь, которую я могу получить! Благодаря!

+2

Я бы разделить строку в пространстве с 'ДЕЛЕНИЕ (» «)'. Вы можете получить количество слов с помощью 's.split (" ") .length' и длины индивидуумов с' for (String x: s.split ("")) {System.out.println (x.length ()); } – Charlie

+0

Какова проблема с вышеуказанным кодом? – Lal

ответ

6

Шаг 1 - Найти количество слов в предложении, используя пространство сепаратора.

String CurrentString = "How Are You"; 
    String[] separated = CurrentString.split(" "); 
    String sResultString=""; 
    int iWordCount = separated.length; 
    sResultString = iWordCount +" words"; 

Шаг 2 - Найти количество письма в каждом слове.

for(int i=0;i<separated.length;i++) 
    { 
    String s = separated[i]; 
    sResultString = sResultString + s.length + " letters "; 
    } 

// Print sResultString 
+0

yep. это будет сделано. – Jroosterman

+0

Танк, это было именно то, что мне нужно. –

1

Посмотрите на http://www.tutorialspoint.com/java/java_string_split.htm. Вы должны использовать функцию Java String.split() для разбиения строки на пробелы "". Это должно дать вам массив, содержащий каждое слово. Затем он просто набирает длину каждого слова.

0

считать слова, это может помочь

public static int countWords(String str) 
     { 
      int count = 1; 
      for (int i=0;i<=str.length()-1;i++) 
      { 
       if (str.charAt(i) == ' ' && str.charAt(i+1)!=' ') 
       { 
        count++; 
       } 
      } 
      return count; 
     } 
     public static void main(String[] args) 
     { 
      Scanner in = new Scanner(System.in); 
      System.out.print("Enter a sentence: "); 
      String sentence = in.nextline(); 
      System.out.print("Your sentence has " + countWords(sentence) + " words."); 
     } 
0

Вот мой код-

public void countWordsLetters(String s){ 
     String str[]=s.split(" "); 
     System.out.println("No. of words in string::"+str.length); 
     for (int i=0;i<str.length;i++){ 
      System.out.println("No of letters in "+i+" word "+str[i].length()); 
     } 
    }