2016-10-23 11 views
1

フォーラムを探していて、入力された文字列の小文字を数える方法についての有益なコードが見つかりました。まず、テストした後、最初に入力した単語内の小文字しかカウントされませんでした。例えば、HeREと入力すると、小文字が1小文字で入力されたと言われますが、入力した場合:HeRE私はです。 4.最初の単語の小文字のみを数えます。文字列全体の小文字を数えるにはどうすればよいですか?これまで文字列の小文字を数えよう

コード:

import java.util.Scanner; 
public class countingLowerCaseStrings { 
public static void main(String args[]){ 
Scanner scanner = new Scanner(System.in); 

System.out.println("Enter your string: "); 
String input = scanner.next(); 

int LowerCaseLetterCounter = 0; 
    for (char ch : input.toCharArray()) { 
    if (Character.isLowerCase(ch)) { 
    LowerCaseLetterCounter++; 
    } 
} 

    System.out.println ("Number of lower case letters in this string is: " + 
    LowerCaseLetterCounter); 

    } 

    } 

おかげで助けをたくさん!

答えて

3

scanner.next();は、行全体ではなく、の最初の利用可能な単語を読み取ります。

「HeRE i am」と入力すると、「Here」と表示されます。 scanner.nextLine()

変更は:

System.out.println("Enter your string: "); 
String input = scanner.nextLine(); 

DEMOからstdinstdoutパネルを見てください。興味の問題として

+0

私は完全にそれを逃しました!おかげで、簡単に修正でき、私はそれに気付かなかったとは信じられない!あなたは素晴らしいです! ;) – hoshicchi

+0

@hoshicchiよろしくお願いします! ;) – BackSlash

0

、Javaの8は同じことを達成するための、かなり合理化の方法を提供します:

scanner.nextLine().chars().filter(Character::isLowerCase).count()