7.2.1.1. What is printed?
Solution.
silly
baseline | concatenation | copy cosntructor |
data structure | delimited string | delimiter |
empty string | garbage collection | glyph |
lexicographic order | logical font | off-by-one error |
orphan object | physical font | read only |
string | string index | string literal |
token | unit indexed | zero indexed |
String
literal is a sequence of 0 or more characters enclosed within double quotation marks. A String
object is a sequence of 0 or more characters, plus a variety of class and instance methods and variables.String
object is created automatically by Java the first time it encounters a literal string, such as “Socrates,” in a program. Subsequent occurrences of the literal do not cause additional objects to be instantiated. Instead, every occurrence of the literal “Socrates” refers to the initial object.String
object is created whenever the new
operator is used in conjunction with a String()
constructor—for example, new String("hello")
.String
concatenation operator is the overloaded \(+\) symbol; it is used to combine two String
s into a single String
: “hello” + “world” ==>
“helloworld”. Strings are indexed starting at 0. The indexOf()
and lastIndexOf()
methods are used for finding the first or last occurrence of a character or substring within a String
. The valueOf()
methods convert a nonstring into a String
. The length()
method determines the number of characters in a String
. The charAt()
method returns the single character at a particular index position. The various substring()
methods return the substring at particular index positions in a String
.equals()
method returns true
if two String
s contain the same exact sequence of characters. The ==
operator, when used on String
s, returns true if two references designate the same String
object. String objects are immutable. They cannot be modified.StringBuffer
is a string object that can be modified using methods such as insert()
and append()
.StringTokenizer
is an object that can be used to break a String
into a collection of tokens separated by delimiters. The whitespace characters—tabs, blanks, and newlines—are the default delimiters.FontMetrics
class is used to obtain the specific dimensions of the the various Font
s. It is useful when you wish to center text. Font
s are inherently platform dependent. For maximum portability, it is best to use default fonts.tricky.indexOf(String.valueOf( tricky.indexOf("c") )); tricky.indexOf(String.valueOf( 2 )) tricky.indexOf("2") 9
public static void main(String args[]) {
KeywordSearch searcher = new KeywordSearch();
String result = searcher.keywordSearch("this is a test","is");
System.out.println(result);
result = searcher.keywordSearch("able was i ere i saw elba","a");
System.out.println(result);
result = searcher.keywordSearch("this is a test","taste");
System.out.println(result);
}
public static void main(String args[]) {
KeywordSearch searcher = new KeywordSearch();
String result = searcher.keywordSearch("this is a test","is");
System.out.println(result);
result = searcher.keywordSearch("able was i ere i saw elba","a");
System.out.println(result);
result = searcher.keywordSearch("this is a test","taste");
System.out.println(result);
}
subString()
methods
String
public static String removeBlanks(String s) {
StringBuffer sb = new StringBuffer();
for (int k = 0; k < s.length(); k++) {
if (s.charAt(k) != ' ') {
sb.append(s.charAt(k));
}
}
return sb.toString();
}
public class StringFollows {
public static boolean follows(String s1, String s2) {
int minlen = Math.min(s1.length(), s2.length()); // Pick shorter length
for (int k=0; k < minlen; k++) { // For each ch in shorter string
if (s1.charAt(k) != s2.charAt(k)) // If chars unequal
return s1.charAt(k) > s2.charAt(k); // return true if s1's ch > s2's
}
// If all characters so far are equal
// then s1 > s2 if it is longer than s2
return s1.length() > s2.length();
}
public static void main(String args[]) {
// Add code to test your methods here
System.out.println (follows("a", "ab") );
System.out.println (follows("ab", "a") );
System.out.println (follows("ab", "ab") );
} // main()
} // StringFollows
public static void main(String args[]) {
String s1 = "abcdefghijklmnopqrstuvwxyz";
String s2 = "hello world";
// Combine parts of s1 and s2 to create a new string "hello abc".
System.out.println(s2.substring(0,6)+s1.substring(0,3));
// Swap "world" and "hello" in s2 to give "world hello".
System.out.println(s2.substring(6) + " " + s2.substring(0,5));
// Swap the front and back halves of s1 to give:
// nopqrstuvwxyzabcdefghijklm
System.out.println(s1.substring(s1.indexOf('n')) +
s1.substring(0,s1.indexOf('n')));
} // main()