Program: Squiggle
Write a program named Squiggle.java. The program will ask for the name of a text file. The program will then read lines from the text file.
For each line read from the input file:
• Print each line read. • Print each line in “squiggle” format:
• The first line will consist of the 0th, 3rd, 6th, 9th, etc. characters from the line of text. Put two blank spaces after each character.
• The second line will consist of the 1st, 4th, 7th, etc., characters from the line of text. Put one blank space at the start of the line and two blank spaces after each character.
• The third line will consist of the 2nd, 5th, 8th, etc., characters from the line of text. Put two blank spaces at the start of the line and two blank spaces after each character.
• Print a blank line.
Here is a short example. The contents of sample1.txt: Four-score and seven years ago, our fathers brought forth on this continent a new nation, conceived in liberty and dedicated to the proposition that all men are created equal.
The result of running the program using sample1.txt: Enter the name of the file: sample1.txt Four-score and seven years ago, our fathers brought forth on this Frcenseyra,ufhsrg r i
o-o denesg rae ohftots usra v a oo trbutohnh
continent a new nation, conceived in liberty and dedicated to the cte n tnccv bta dadoh
oinaeni,oeeileyndit e nnt wao nidnir decett
proposition that all men are created equal. ppiottlm ert u.
rotnh lea eeea osi aa nrcadql
Note: there is a blank line at the end of the output.
Special cases:
There are three special cases that your program will need to handle:
1. When there is a blank line in the input file, your program will print one blank line to the output (nothing else).
2. When there is a line with only a single character, your program will print the line. The squiggle will then consist of only the first line (not the other two lines, since there would be no characters on those lines). Print a blank line at the end.
3. When there is a line with only two characters, your program will print the line. The squiggle will then consist of two lines (not three). Print a blank line at the end.
Here is an example. The contents of sample2.txt: abcdefg abcdef
abcde abcd abc ab
a Q QR QRST QRSTUVWXYZ
The result of running the program using sample2.txt: Enter the name of the file: sample2.txt abcdefg adg
be cf
abcdef ad
be cf
abcde ad
be c
abcd ad
b
c
abc
a
ab a
a a
Q Q
QR Q
R
b
b
c
QRST QT
R
S
QRSTUVWXYZ QTWZ
RUX SVY
Note one: there are two blank lines in the output before the line abcde. The first blank line is the blank line that follows the output for abcdef. The second blank line is the only output line for the blank line that is in sample2.txt.
Note two: there is a blank line at the end of the output.
We will provide some sample input files (including sample1.txt and sample2.txt from the examples above) and the correct output on D2L.
Sample1.txt
Four-score and seven years ago, our fathers brought forth on this
continent a new nation, conceived in liberty and dedicated to the
proposition that all men are created equal.
Sample2.txt
abcdefg
abcdef
abcde
abcd
abc
ab
a
Q
QR
QRST
QRSTUVWXYZ
Sample3.txt
0123456789
01234
0123
012
01
0
01
012
0123
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
Sample4.txt
Gettysburg Address
November 19, 1863
On the battlefield near Gettysburg, Pennsylvania
Four-score and seven years ago, our fathers brought forth on this
continent a new nation, conceived in liberty and dedicated to the
proposition that all men are created equal.
Now we are engaged in a great civil war, testing whether that nation
or any nation so conceived and so dedicated can long endure. We are
met on a great battle field of that war.
We have come to dedicate a portion of that field, as a final
resting place for those who here gave their lives that this nation
might live. It is altogether fitting and proper that we should do this.
But, in a larger sense, we can not dedicate - we can not consecrate - we
can not hallow - this ground. The brave men, living and dead, who
struggled here, have consecrated it, far above our poor power to
add or detract. The world will little note, nor long remember, what
we say here, but it can never forget what they did here.
It is for us the living, rather, to be here dedicated to the unfinished
work which they who fought here have thus far so nobly advanced. It is
rather for us to be here dedicated to the great task remaining before
us - that from these honored dead we take increased devotion to that
cause for which they gave the last full measure of devotion - that we
here highly resolve that these dead shall not have died in vain - that
this nation, under God, shall have a new birth of freedom - and that
government of the people, by the people, for the people, shall not
perish from the earth.
import java.util.Scanner; import java.io.*; public class Squiggle { public static void main( String[] args) throws FileNotFoundException { Scanner scanInput = new Scanner( System.in ); System.out.println( "Enter the name of a file: " ); //asks user for name of file String filename = scanInput.nextLine(); //gets the file name File myFile = new File(filename); //makes the filename that is input by the user into myFile(a file) Scanner fileScan = new Scanner(myFile); while (fileScan.hasNextLine() ) { System.out.println(fileScan.nextLine() ); String line1; line1 = fileScan.nextLine(); char squiggle0 = line1.charAt(0); char squiggle3 = line1.charAt(3); char squiggle6 = line1.charAt(6); char squiggle9 = line1.charAt(9); char squiggle12 = line1.charAt(12); char squiggle15 = line1.charAt(15); String twoBlanks = " "; System.out.println( squiggle0 + twoBlanks + squiggle3 + twoBlanks + squiggle6 + twoBlanks + squiggle9 + twoBlanks + squiggle12 + twoBlanks + squiggle15 + twoBlanks); //print statement //end of first line's squiggle statement String line2; line2 = fileScan.nextLine(); char squiggle1 = line2.charAt(1); char squiggle4 = line2.charAt(4); char squiggle7 = line2.charAt(7); char squiggle10 = line2.charAt(10); char squiggle13 = line2.charAt(13); char squiggle16 = line2.charAt(16); System.out.println( squiggle1 + twoBlanks + squiggle4 + twoBlanks + squiggle7 + twoBlanks + squiggle10 + twoBlanks + squiggle13 + twoBlanks + squiggle16 + twoBlanks); //print statement //end of second line's squiggle statement String line3; line3 = fileScan.nextLine(); char squiggle2 = line3.charAt(2); char squiggle5 = line3.charAt(5); char squiggle8 = line3.charAt(8); char squiggle11 = line3.charAt(11); char squiggle14 = line3.charAt(14); char squiggle17 = line3.charAt(17); System.out.println( squiggle2 + twoBlanks + squiggle5 + twoBlanks + squiggle8 + twoBlanks + squiggle11 + twoBlanks + squiggle14 + twoBlanks + squiggle17 + twoBlanks); //print statement //end of third line's squiggle statement } //end of while }//end of main method }//end of