Q: How do I get started?
A: Read Ch. 6 in the textbook. Look over the TA Hours worked example from lecture.
Q: Why does my prompt get all messed up when the user types more than one word on the console?
A: Make sure to choose the right method(s) for reading user input. If you want a one-word answer, use the Scanner
object's next
method. If you want to allow a multi-word answer, use nextLine
instead.
Q: Why do I get a NoSuchElementException
?
A: You tried to read past the end of a Scanner
. Read the exception output text carefully and look for the first line that mentions your program. That's the line that is the culprit. For example, the output:
Exception in thread "main" java.util.NoSuchElementException at java.util.Scanner.throwFor(Scanner.java:838) at java.util.Scanner.next(Scanner.java:1347) at MyProgram.sillyMethod(MyProgram.java:39) at MyProgram.main(MyProgram.java:15)
means that there's an error in sillyMethod
at line 39 of MyProgram.java
.
Q: Why do I get an InputMismatchException
?
A: You tried to read the wrong type of token from a Scanner
. For example, you tried to read the word "Lisa" as an int
.
Q: How do I make a Scanner
start over or go back?
A: You can't! But if it is a String Scanner
, you can make a new Scanner
over the same String
to start reading over again.
Q: How do I use a PrintStream
?
A: See section 6.4 of the textbook. You just construct it and then call methods on it such as print
and println
, just like you do with System.out
.
Q: How do I know which words are placeholders?
A: Any token that begins with a <
and ends with a >
is a placeholder.
-
dashes in a placeholder into spaces?
A: String objects have lots of useful methods that can help you with these tasks. Most of them are ones we have seen a lot already, such as length
, startsWith
, substring
, toUpperCase
, and so on. You may also want to use the replace
method on this assignment, which replaces all occurrences of one character with another. For example:
String str = "mississippi"; str = str.replace("s", "*"); // str = "mi**i**ippi"
Q: How do I view an existing mad lib?
A: Just read the input file and output all of its contents to the console. See the textbook Chapter 6 Self-Check problem #12, printEntireFile
, for hints.
Q: How do I re-prompt if the input file is not found?
A: See the methods of File
objects shown in the lecture slides. You can use these methods to detect whether or not a file exists and re-prompt if it does not.