I’m having trouble printing out the final result without each word being on its own line. The output should be formatted just as the input was. Here is the code I used to read the data and print it:
Scanner sc2 = null;
try {
sc2 = new Scanner(new File(dataFile));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
while (sc2.hasNextLine()) {
Scanner s2 = new Scanner(sc2.nextLine());
boolean b;
while (b = s2.hasNext()) {
String s = s2.next();
System.out.println(pig(s));
}
}
The actual instructions were as follows: “Translate the Declaration of Independence (“declaration.txt”) into PigLatin. Try to preserve the paragraphs. There are several ways to do this, but they all use nested loops. You may want to look at nextLine, next, split, or StringTokenizer.”
We haven’t been taught how to use any of the methods listed there, though.
The
printlnmethod is short for “print line”. It prints the given output to the target output device followed by a newline. Check out the other methods in that class for the solution.Update
The problem here is that to my knowledge
java.util.Scannerthrows out the whitespace (delimiter) between words. Check outjava.util.StringTokenizerfor a similar class that can be configured to return the whitespace characters one at a time.