Как мне считать символы в Java, включая прописные и строчные буквы? - PullRequest
0 голосов
/ 10 октября 2018

Ниже приведен код, который я использую.Выходной файл печатается правильно, но не печатает правильное количество символов или прописных / строчных букв.

public class FileProcessing 
{
    public static void main(String[] args) throws IOException 
    {
    File file1 = new File("input.txt");
    Scanner scanner = new Scanner(file1);
    scanner.hasNextLine();
    String s = scanner.nextLine();
    int length = s.length();
    char[] charAnalysis = s.toCharArray();
    int lowercase = 0;
    int uppercase = 0;
    for (char element : charAnalysis) 
    {
        if (Character.isUpperCase(element)) 
        {
            uppercase++;
        }
        else if (Character.isLowerCase(element)) 
        {
            lowercase++;
        }
    }
    File file2 = new File("output.txt");
        try (PrintStream ps = new PrintStream(file2)) 
        {
            ps.println("Number of characters is " + length);
            ps.println("Number of lower case letters is " + uppercase);
            ps.println("Number of upper case letters is " + lowercase);   
        }
        catch(IOException e) 
        { 
        }
    }
}

1 Ответ

0 голосов
/ 10 октября 2018

Ваша программа правильно считает прописные и строчные буквы.Вы допустили ошибку при сохранении вывода в файл:

Вы пытаетесь сохранить прописные буквы как строчные.

ps.println("Number of **lower case** letters is " + **uppercase**);
ps.println("Number of **upper case** letters is " + **lowercase**); 

Решение состоит в замене переменных:

        ps.println("Number of lower case letters is " + lowercase);
        ps.println("Number of upper case letters is " + uppercase);   

Что важно, вы читаете только одну строку из файла, поэтому ваша программа будет считать символы только в первой строке.

Если вы хотите считать каждую строку, вам нужно читать строки в цикле, а затем считать символы.

...