105 字串索引
import java.util.Scanner; public class JPA05 { public static void main(String[] args) { // 英文短文常數 String dreams = "There are moments in life when you miss someone so much that " + "you just want to pick them from your dreams and hug them for real! Dream what " + "you want to dream;go where you want to go;be what you want to be,because you have " + "only one life and one chance to do all the things you want to do"; Scanner sc = new Scanner(System.in); // 輸入要搜尋的單字 String search = sc.nextLine(); sc.close(); // 取得單字的第一個位置和最後一個位置 int first = dreams.indexOf(search); int last = dreams.lastIndexOf(search); String result = ""; if (first == -1) { // 如果單字不存在,設為 0 並顯示空字串 first = 0; last = 0; } else if (first == last) { // 如果單字只出現一次,擷取從該單字開始到結尾的字串 result = dreams.substring(first); first += 1; // 索引加 1 last = 0; // 只有一個位置,last 設為 0 } else { // 擷取兩個位置之間的字串 result = dreams.substring(first, last + search.length()); first += 1; // 索引加 1 last += 1; // 索引加 1 } // 輸出結果 System.out.println("first:" + first); System.out.println("last:" + last); System.out.print("capture:" + result); } }
1. 假設單字不存在 (indexOf 返回 -1),則將 first 和 last 設為 0 並返回空字串。 2. 單字若只出現一次 (first == last),則擷取從該單字開始到字串結尾的內容,並將 last 設為 0。 3. 單字若多次出現,則擷取兩個位置之間的字串,包含第一個位置的單字。