Cho đoạn chương trình sau:
String s= " Nguyen Van An ";
String s1 = new String();
s = s.trim();
int i;
for (i = s.length() - 1; i >= 0; i--) {
s1 = s.substring(i,i+1);
if (s1.equals(" ")) break;
}
System.out.print(s.substring(i+1));
Chương trình trên in ra kết quả là bao nhiêu?
Trả lời:
Đáp án đúng: C
Đoạn chương trình thực hiện các bước sau:
1. **`String s= " Nguyen Van An ";`**: Khởi tạo chuỗi `s` với giá trị " Nguyen Van An ".
2. **`String s1 = new String();`**: Khởi tạo một chuỗi rỗng `s1`.
3. **`s = s.trim();`**: Loại bỏ khoảng trắng ở đầu và cuối chuỗi `s`. Lúc này, `s` có giá trị "Nguyen Van An".
4. **`for (i = s.length() - 1; i >= 0; i--) { ... }`**: Vòng lặp duyệt ngược chuỗi `s` từ cuối lên đầu.
5. **`s1 = s.substring(i,i+1);`**: Lấy ký tự tại vị trí `i` của chuỗi `s` và gán cho `s1`.
6. **`if (s1.equals(" ")) break;`**: Nếu ký tự `s1` là khoảng trắng, vòng lặp sẽ dừng.
7. **`System.out.print(s.substring(i+1));`**: In ra chuỗi con của `s` bắt đầu từ vị trí `i+1` đến hết chuỗi.
Trong vòng lặp, biến `i` sẽ duyệt qua các vị trí của chuỗi "Nguyen Van An" từ phải sang trái. Vòng lặp dừng lại khi gặp khoảng trắng đầu tiên (tính từ cuối chuỗi). Khoảng trắng này nằm giữa "Van" và "An". Khi đó, `i` sẽ là vị trí của khoảng trắng đó.
Câu lệnh `System.out.print(s.substring(i+1));` sẽ in ra chuỗi con của `s` bắt đầu từ vị trí `i+1`. Vì `i` là vị trí của khoảng trắng giữa "Van" và "An", nên `i+1` là vị trí bắt đầu của từ "An". Do đó, chương trình sẽ in ra "An".





