Lecture for January 25
Strings
These are concatenated chars
'd' + 'o' + 'g' // equivalent to "dog"
"straw" + "berry" // strawberry
Strings are denoted by double quotes ""
rather than a string which is denoted by single quotes ''
String is not a primitive type, it is a class. Hence, why it is capitalized in Java.
The java.lang.String
is automatically imported in Java.
To declare and initialize a String
String name = "Henry";
In memory it appears as
H | 'e' | 'n' | 'r' | 'y' |
---|---|---|---|---|
String Methods
int length()
boolean equals(String another)
boolean startsWith(String prefix)
boolean endsWith(String suffix)
String substring(int start, int end)
int indexOf(int ch)
String toLowerCase()
Using String Methods
char first = name.charAt(0);
Remember in Java, that it starts counting from zero! If you try to access a letter that doesn't exist, it will produce an IndexOutOfBounds
error.
Errors
There are two types of errors, compile-type errors and run-time errors. Later we will talk about debugging skills such as making "breakpoints" in your code so you can analyze the different variable values.
Compile Time Errors
Compile time errors are generated due to syntax errors. Forgot a semicolon? Missing a brace?
Run-time Errors
These are logic errors. Not derived from syntax errors. An example of one that was discussed earlier is the IndexOutOfBounds
error.
Tricky Thing About Input
Let's talk about input right now. Let's say you have the following scenario
Scanner input = new Scanner(System.in);
System.out.println("Enter pet's age: ");
int age = input.nextInt();
System.out.println("Enter pet's name: ");
String name = input.nextLine();
System.out.println("Enter pet's breed: ");
String breed = input.next();
Then when we start to run the program...
Enter pet's age:
14
Enter pet's name:
Enter pet's breed:
Labradoodle
Why did it skip pet's name? Let's run through the process again
Enter pet's age:
14 [ENTER]
Enter pet's name:
Enter pet's breed:
Labradoodle
Here the [ENTER] key gets saved into name.
To resolve this, just use an input.nextLine()
to throw away that [ENTER]
Scanner input = new Scanner(System.in);
System.out.println("Enter pet's age: ");
int age = input.nextInt();
System.out.println("Enter pet's name: ");
input.nextLine();
String name = input.nextLine();
System.out.println("Enter pet's breed: ");
String breed = input.next();