似乎很喜歡考substring 將所有相關題目彙整在一起
String str = "abcde";
str.trim();
str.toUpperCase();
str.substring(3, 4);
System.out.println(str);
- CD
- CDE
- D
- "abcde"
Answer : 4
解析: 這題表面上看起來是在考substring,但其實是一題陷阱題。
題目 2,3,4 行,雖然都對字串做了一些操作,但是如果要記錄操作完的過程
則必須像下面這樣寫
str = str.trim();
str = str.toUpperCase();
str = str.substring(3, 4);
不然其實str中的字串沒有任何改變
Given the string "strawberries" saved in a variable called fruit, what would fruit.substring(2, 5) return?
- rawb
- raw
- awb
- traw
answer :2
解析:substring(2, 5) 表示從index 2 切到5的前一個(不包括5),也就是切
2,3,4
注意字串的index是從0開始算,所以這題答案是"raw"
class Main {
public static void main (String[] args) {
String message = "Hello world!";
String newMessage = message.substring(6, 12)
+ message.substring(12, 6);
System.out.println(newMessage);
}
}
- The code does not compile.
- A runtime exception is thrown.
- "world!!world"
- "world!world!"
answer : B
解析:
substring 只能從前面切到後面,沒辦法從後面切回來
所以執行後會報 java.lang.StringIndexOutOfBoundsException