Strings in Java
Strings are a special type of object in Java.
For most objects, one can only access/modify them using dot (.) notation, e.g.,
obj.method();
Java provides special syntax for Strings including
string literal values and
concatentation.
String literal-- a set of characters within quotes, e.g., "string literal".
String s = "hello";
Internal representation: a list of characters delimited with '\0'
Java hides internal representation
Concatentation
concatenation means to meld two strings together.
e.g.,
String s1 = "abc";
String s2 = "def";
String s3 = s1+s2; // s3
= "abcdef"
Can be used to build a string character by character
String s = ""; // start with empty string
s = s + "a";
s = s + "b";
//...
Accessing characters within Strings:
Normal object dot notation is used.
from Java API: http://java.sun.com/j2se/1.5.0/docs/api/index.html
char |
charAt(int index) Returns the character at the specified index. |
int |
length() Returns the length of this string. |
Example:
String s = "abcdefg";
char c = s.charAt(3); // value of c is 'd'
int l = s.length(); // value of l is 7
Potential Errors (Exceptions)
IndexOutOfBoundsException
- if the index
argument is
negative or not less than the length of this string.Can write careful code to check for potential errors:
throw {
while (i<10)
{
char c = s.charAt(i)
}
}
catch (IndexOutOfBoundsException e)
{
System.out.println(e);
}
In-Class Assignment
This assignment will help you understand strings and help you with your Lexer
assignment
1. Write a program which counts the number of times the digit '3' appears in a string. Your program should contain a method:
int countThrees(String s)
and a main that calls countThrees with a string literal
parameter then
prints out the result.
2. Add a method which grabs the first word in a string. Assume a word is a
sequence of letters (a-z or A-Z), and that "first word" means the first such sequence in the
given string. Here is the signature for the method:
String getFirstWord(String s)