new work with java

Below I have listed some code I am working on.  I am trying to get to count how many fours I have in my text on each line.  The lines in the text will end with a comma before I start the next line.

I believe I have the input of the text correct and most of the counting portion.  I am lost on the rest of  it and the output.  Can you show me a way t put the output in a text and/or return in in the prompt area

import java.io.FileReader;
import java.io.BufferedReader;
import java.io.IOException;

public class MyTry1 {
    public static void main(String[] args) throws IOException {
        try {
            inputStream =
                new BufferedReader(new FileReader("readme.txt"));
String lineInfo = input.nextLine();
       
// get the number of characters in each line    
       
counts+= lineInfo.length();

// get the number of 4's in each line    
   
char[] chars = lineInfo.toCharArray();
for (int i = 0; i < chars.length; i++)
{
  if (chars[i] == '4')
     countFours++;
}
lpetrowiczAsked:
Who is Participating?
 
zweiConnect With a Mentor Software DeveloperCommented:
Maybe this is less confusing: Counts the fours and counts all the characters, and does two printouts to command prompt:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
 
public class MyTry1 {
	
    public static void main(String[] args) {
        File file = new File("C:\\test.txt");
        BufferedReader reader = null;
        int countFours = 0;
        int totalChars = 0;
 
 
        try {
            reader = new BufferedReader(new FileReader(file));
            int c = 0;
 
            // read the characters, one at a time.
            while ((c = reader.read()) != -1) {
                totalChars++;
                    if (c == '4') {
                        countFours++;
                        }
                    }
			
            System.out.println("Total fours: " + countFours);
			
            System.out.println("Total characters in the file: " + totalChars);
			
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Open in new window

0
 
zweiSoftware DeveloperCommented:
Print out to command prompt is done System.out.println() command.

Example:
System.out.println("Total of " + countFours + " fours);

Open in new window

0
 
zweiSoftware DeveloperCommented:
Oops forgot a quotation mark
System.out.println("Total of " + countFours + " fours.");

Open in new window

0
Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

 
lpetrowiczAuthor Commented:
so, everything else is in the correct spot then and written correctly?
0
 
lpetrowiczAuthor Commented:
and if so, exactly where in my code am I putting it
0
 
zweiSoftware DeveloperCommented:
Well no, you're only reading the first line of the text file right now. To read all lines you'd have to loop them.

I would do it like this:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
 
public class MyTry1
{
    public static void main(String[] args)
    {
        File file = new File("example.txt");
        BufferedReader reader = null;
        int countFours = 0;
 
 
            try {
				reader = new BufferedReader(new FileReader(file));
            String text = null;
 
            // repeat until all lines is read
				while ((text = reader.readLine()) != null)
				{
					for(int i = 0; i < text.length(); i++) {
						if (text.charAt(i) == '4') {
							countFours++;
						}
					}
				}
				System.out.println("Total fours: " + countFours);
			} catch (IOException e) {
				e.printStackTrace();
			}
    }
}

Open in new window

0
 
zweiSoftware DeveloperCommented:
Sorry for the messed up indentation. Dunno how I did that... o.O
0
 
lpetrowiczAuthor Commented:
One last question

I need to add an object that tells me how many characters per line, can you help with that or do I need a whole new question.  This other part works awesome...Thanks
0
 
lpetrowiczAuthor Commented:
to include whitespace
0
 
zweiSoftware DeveloperCommented:
in my example, text.length() holds the number of characters for the line. If you wanted the total lines in the text file you could just make another int variable:
public class MyTry1 {
    public static void main(String[] args) {
        File file = new File("C:\\test.txt");
        BufferedReader reader = null;
        int countFours = 0;
        int totalChars = 0;
 
 
        try {
            reader = new BufferedReader(new FileReader(file));
            String text = null;
 
            // repeat until all lines is read
            while ((text = reader.readLine()) != null) {
                totalChars += text.length();
                for(int i = 0; i < text.length(); i++) {
                    if (text.charAt(i) == '4') {
                        countFours++;
                    }
                }
            }
            System.out.println("Total fours: " + countFours);
            System.out.println("Total characters in the file: " + totalChars);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Open in new window

0
 
zweiSoftware DeveloperCommented:
Oh yeah, reader.readLine() does not include the new line feed. So you would have add that if you wanted the new line white space to count too:
totalChars += += text.length() + 1;

Open in new window

0
 
zweiSoftware DeveloperCommented:
Ahh >.<
totalChars += text.length() + 1;

Open in new window

0
 
lpetrowiczAuthor Commented:
A litle confused now

The second bit of code you wrote and added; that would count characters per line and tell me total number of 4's?
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.