Solved

new work with java

Posted on 2009-05-08
13
250 Views
Last Modified: 2013-11-23
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++;
}
0
Comment
Question by:lpetrowicz
  • 8
  • 5
13 Comments
 
LVL 7

Expert Comment

by:zwei
Comment Utility
Print out to command prompt is done System.out.println() command.

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

Open in new window

0
 
LVL 7

Expert Comment

by:zwei
Comment Utility
Oops forgot a quotation mark
System.out.println("Total of " + countFours + " fours.");

Open in new window

0
 

Author Comment

by:lpetrowicz
Comment Utility
so, everything else is in the correct spot then and written correctly?
0
 

Author Comment

by:lpetrowicz
Comment Utility
and if so, exactly where in my code am I putting it
0
 
LVL 7

Expert Comment

by:zwei
Comment Utility
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
 
LVL 7

Expert Comment

by:zwei
Comment Utility
Sorry for the messed up indentation. Dunno how I did that... o.O
0
Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

 

Author Comment

by:lpetrowicz
Comment Utility
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
 

Author Comment

by:lpetrowicz
Comment Utility
to include whitespace
0
 
LVL 7

Expert Comment

by:zwei
Comment Utility
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
 
LVL 7

Expert Comment

by:zwei
Comment Utility
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
 
LVL 7

Expert Comment

by:zwei
Comment Utility
Ahh >.<
totalChars += text.length() + 1;

Open in new window

0
 

Author Comment

by:lpetrowicz
Comment Utility
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
 
LVL 7

Accepted Solution

by:
zwei earned 500 total points
Comment Utility
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

Featured Post

What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

Join & Write a Comment

For customizing the look of your lightweight component and making it look lucid like it was made of glass. Or: how to make your component more Apple-ish ;) This tip assumes your component to be of rectangular shape and completely opaque. (COD…
INTRODUCTION Working with files is a moderately common task in Java.  For most projects hard coding the file names, using parameters in configuration files, or using command-line arguments is sufficient.   However, when your application has vi…
Viewers will learn about arithmetic and Boolean expressions in Java and the logical operators used to create Boolean expressions. We will cover the symbols used for arithmetic expressions and define each logical operator and how to use them in Boole…
This tutorial covers a practical example of lazy loading technique and early loading technique in a Singleton Design Pattern.

763 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

6 Experts available now in Live!

Get 1:1 Help Now