Computer Science 15-100, Fall 2008
Class Notes: String and Character Methods
String and Character Methods
class MyCode {
public static void main(String[] args) {
System.out.println("abc".charAt(0));
System.out.println("abc".charAt(1));
System.out.println("abc".charAt(2));
System.out.println("abc".charAt(3)); // run-time error!
}
}
Another Example:
class MyCode {
public static void main(String[] args) {
// The canonical loop-through-a-string
String s = "Carpe diem!";
for (int i=0; i<s.length(); i++)
System.out.println(s.charAt(i));
}
}
class MyCode {
public static void main(String[] args) {
System.out.println("abc".compareTo("def"));
System.out.println("def".compareTo("abc"));
System.out.println("abc".compareTo("ABC"));
System.out.println("ABC".compareTo("abc"));
System.out.println("ab".compareTo("abc"));
System.out.println("abc".compareTo("ab"));
System.out.println("abc".compareTo("abc"));
}
}
Another Example:
class MyCode {
public static void main(String[] args) {
System.out.println("abc" < "def"); // will not compile!
}
}
Fixed:
class MyCode {
public static void main(String[] args) {
System.out.println("abc".compareTo("def") < 0);
}
}
class MyCode {
public static void main(String[] args) {
System.out.println("abc".compareToIgnoreCase("def"));
System.out.println("def".compareToIgnoreCase("abc"));
System.out.println("abc".compareToIgnoreCase("ABC"));
System.out.println("ABC".compareToIgnoreCase("abc"));
System.out.println("ab".compareToIgnoreCase("abc"));
System.out.println("abc".compareToIgnoreCase("ab"));
System.out.println("abc".compareToIgnoreCase("abc"));
}
}
class MyCode {
public static void main(String[] args) {
String s = "abc";
System.out.println(s.concat("def"));
System.out.println(s + "def");
}
}
class MyCode {
public static void main(String[] args) {
System.out.println("abc".contains("abc"));
System.out.println("abc".contains("ABC"));
System.out.println("abc".contains("abcd"));
System.out.println("abc".contains(""));
}
}
class MyCode {
public static void main(String[] args) {
System.out.println("abc".endsWith("bc"));
System.out.println("abc".endsWith("c"));
System.out.println("abc".endsWith(""));
System.out.println("abc".endsWith("b"));
System.out.println("abc".endsWith("C"));
}
}
class MyCode {
public static void main(String[] args) {
System.out.println("abc".equals("abc"));
System.out.println("abc".equals("def"));
System.out.println("abc".equals("ABC"));
System.out.println("abc".equals("ab"));
System.out.println("abc".equals(null));
}
}
class MyCode {
public static void main(String[] args) {
// Do not use "==" with Strings -- the results are unpredictable!
String ab = "ab";
String cd = "cd";
String s1 = "abcd";
String s2 = ab + cd;
String s3 = "ab" + "cd";
String s4 = "ab".concat("cd");
// Note that s1, s2, s3, and s4 all hold the characters "abcd"
System.out.println("See how equals works as expected for ALL of them:");
System.out.println(s1.equals(s2));
System.out.println(s1.equals(s3));
System.out.println(s1.equals(s4));
System.out.println("But == only works as expected for SOME of them:");
System.out.println(s1 == s2);
System.out.println(s1 == s3);
System.out.println(s1 == s4);
}
}
class MyCode {
public static void main(String[] args) {
System.out.println("abc".equalsIgnoreCase("abc"));
System.out.println("abc".equalsIgnoreCase("def"));
System.out.println("abc".equalsIgnoreCase("ABC"));
System.out.println("abc".equalsIgnoreCase("ab"));
System.out.println("abc".equalsIgnoreCase(null));
}
}
class MyCode {
public static void main(String[] args) {
System.out.println("indexOf a char:");
System.out.println("ABC".indexOf('A'));
System.out.println("ABC".indexOf('B'));
System.out.println("ABC".indexOf('D'));
System.out.println();
System.out.println("indexOf a String:");
System.out.println("ABC".indexOf("BC"));
System.out.println("ABC".indexOf("CD"));
System.out.println();
System.out.println("indexOf, starting from a given index:");
System.out.println("ABCDBC".indexOf("BC",1));
System.out.println("ABCDBC".indexOf("BC",2));
System.out.println("ABCDBC".indexOf("BC",5));
}
}
class MyCode {
public static void main(String[] args) {
System.out.println("lastIndexOf a char:");
System.out.println("ABCAB".lastIndexOf('A'));
System.out.println("ABCAB".lastIndexOf('B'));
System.out.println("ABCAB".lastIndexOf('D'));
System.out.println();
System.out.println("lastIndexOf a String:");
System.out.println("ABCAB".lastIndexOf("AB"));
System.out.println("ABCAB".lastIndexOf("CD"));
System.out.println();
System.out.println("lastIndexOf, starting from a given index:");
System.out.println("ABCDBC".lastIndexOf("BC",4));
System.out.println("ABCDBC".lastIndexOf("BC",3));
System.out.println("ABCDBC".lastIndexOf("BC",0));
}
}
class MyCode {
public static void main(String[] args) {
System.out.println("abcd".length());
System.out.println("a b c d".length());
System.out.println("a\nb\nc\nd".length());
System.out.println("".length());
}
}
class MyCode {
public static void main(String[] args) {
System.out.println("Replace char-for-char:");
System.out.println("abcabc".replace('b','z'));
System.out.println();
System.out.println("Replace string-for-string:");
System.out.println("abcabc".replace("bc","xyz"));
System.out.println("abcabc".replace("bc",""));
}
}
Illegal uses of replace:
class MyCode {
public static void main(String[] args) {
System.out.println("abcabc".replace("bc",'d')); // Error!
System.out.println("abcabc".replace('b','')); // A different error!
}
}
class MyCode {
public static void main(String[] args) {
System.out.println("abc".startsWith("ab"));
System.out.println("abc".startsWith("a"));
System.out.println("abc".startsWith(""));
System.out.println("abc".startsWith("b"));
System.out.println("abc".startsWith("A"));
}
}
class MyCode {
public static void main(String[] args) {
// Note: substring includes start index but excludes end index
System.out.println("ABCD".substring(0,1));
System.out.println("ABCD".substring(0,2));
System.out.println("ABCD".substring(1,2));
System.out.println("ABCD".substring(1,3));
System.out.println();
// Note: if omitted, the default end index is the string's length!
String s = "ABCD";
System.out.println(s.substring(2,s.length()));
System.out.println(s.substring(2));
}
}
class MyCode {
public static void main(String[] args) {
System.out.println("This Needs 4 Case Changes!".toLowerCase());
}
}
class MyCode {
public static void main(String[] args) {
System.out.println("Carpe Diem!".toUpperCase());
}
}
class MyCode {
public static void main(String[] args) {
String s1 = " ab cd ";
String s2 = s1.trim();
System.out.println("[" + s1 + "]");
System.out.println("[" + s2 + "]");
}
}
class MyCode {
public static void main(String[] args) {
System.out.println(Character.isDigit('A'));
System.out.println(Character.isDigit('3'));
System.out.println(Character.isDigit(3)); // Surprise!
}
}
class MyCode {
public static void main(String[] args) {
System.out.println(Character.isLetter('A'));
System.out.println(Character.isLetter('a'));
System.out.println(Character.isLetter(' '));
System.out.println(Character.isLetter('\n'));
System.out.println(Character.isLetter('3'));
System.out.println(Character.isLetter(3));
}
}
class MyCode {
public static void main(String[] args) {
System.out.println(Character.isLetterOrDigit('A'));
System.out.println(Character.isLetterOrDigit('a'));
System.out.println(Character.isLetterOrDigit(' '));
System.out.println(Character.isLetterOrDigit('\n'));
System.out.println(Character.isLetterOrDigit('3'));
System.out.println(Character.isLetterOrDigit(3));
}
}
class MyCode {
public static void main(String[] args) {
System.out.println(Character.isLowerCase('A'));
System.out.println(Character.isLowerCase('a'));
System.out.println(Character.isLowerCase(' '));
System.out.println(Character.isLowerCase('3'));
}
}
class MyCode {
public static void main(String[] args) {
System.out.println(Character.isUpperCase('A'));
System.out.println(Character.isUpperCase('a'));
System.out.println(Character.isUpperCase(' '));
System.out.println(Character.isUpperCase('3'));
}
}
class MyCode {
public static void main(String[] args) {
System.out.println(Character.isWhitespace('A'));
System.out.println(Character.isWhitespace('a'));
System.out.println(Character.isWhitespace(' '));
System.out.println(Character.isWhitespace('3'));
System.out.println(Character.isWhitespace('\n'));
System.out.println(Character.isWhitespace('\t'));
}
}
class MyCode {
public static void main(String[] args) {
System.out.println(Character.toLowerCase('A'));
System.out.println(Character.toLowerCase('a'));
System.out.println(Character.toLowerCase('#'));
System.out.println(Character.toLowerCase('3'));
}
}
class MyCode {
public static void main(String[] args) {
System.out.println(Character.toUpperCase('A'));
System.out.println(Character.toUpperCase('a'));
System.out.println(Character.toUpperCase('#'));
System.out.println(Character.toUpperCase('3'));
}
}
carpe diem - carpe diem - carpe diem - carpe diem - carpe diem - carpe diem - carpe diem - carpe diem - carpe diem