मैं जिस कोड का उपयोग कर रहा हूं वह निम्नलिखित है। आउटपुट फ़ाइल सही ढंग से प्रिंट होती है लेकिन वर्णों की सही संख्या या अपर/लोअर केस अक्षरों को प्रिंट नहीं करती है।

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) 
        { 
        }
    }
}
-4
cmark 10 अक्टूबर 2018, 19:52

1 उत्तर

सबसे बढ़िया उत्तर

आपका प्रोग्राम अपरकेस और लोअरकेस वर्णों को सही ढंग से गिनता है। जब आप अपनी फ़ाइल में आउटपुट सहेजते हैं तो आपने एक गलती की है:

आप अपरकेस को लोअरकेस के रूप में सहेजने का प्रयास करें।

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);   

क्या महत्वपूर्ण है कि आप फ़ाइल से केवल एक पंक्ति पढ़ें ताकि आपका प्रोग्राम केवल पहली पंक्ति में वर्णों की गणना करेगा।

यदि आप प्रत्येक पंक्ति को गिनना चाहते हैं तो आपको लूप में पंक्तियों को पढ़ना होगा और फिर वर्णों को गिनना होगा।

2
Rafał Sokalski 10 अक्टूबर 2018, 17:31