Cho đoạn chương trình sau:
String s = "abc def ab cdfg abcabc";
String s1 = new String();
int dem = 0;
for (int i = 0; i < s.length() - 2; i++) {
s1 = s.substring(i,i+3);
if (s1.equals("abc")) dem++;
}
System.out.print(dem);
Chương trình trên in ra kết quả là bao nhiêu?
>
Trả lời:
Đáp án đúng: B
Đoạn chương trình duyệt chuỗi s từ vị trí 0 đến s.length() - 2. Trong mỗi vòng lặp, chương trình trích xuất một chuỗi con s1 có độ dài 3 bắt đầu từ vị trí i. Nếu s1 bằng "abc", biến dem sẽ tăng lên 1.
Chúng ta hãy xem xét từng giá trị của i và chuỗi con s1 tương ứng:
- i = 0: s1 = "abc". dem = 1
- i = 1: s1 = "bcd". dem = 1
- i = 2: s1 = "c d". dem = 1
- i = 3: s1 = " de". dem = 1
- i = 4: s1 = "def". dem = 1
- i = 5: s1 = "ef ". dem = 1
- i = 6: s1 = "f a". dem = 1
- i = 7: s1 = " ab". dem = 1
- i = 8: s1 = "ab ". dem = 1
- i = 9: s1 = "b c". dem = 1
- i = 10: s1 = " abc". dem = 1
- i = 11: s1 = "abc". dem = 2
- i = 12: s1 = "bcc". dem = 2
- i = 13: s1 = "cdf". dem = 2
- i = 14: s1 = "dfg". dem = 2
- i = 15: s1 = "fg ". dem = 2
- i = 16: s1 = "g a". dem = 2
- i = 17: s1 = " abc". dem = 2
- i = 18: s1 = "abc". dem = 3
- i = 19: s1 = "bca". dem = 3
- i = 20: s1 = "cab". dem = 3
- i = 21: s1 = "abc". dem = 4
Vậy kết quả cuối cùng là 4.





