JavaScript is required

Cho đoạn chương trình sau:

String s = "Nguyen Van An";

String s1,s2 = new String();

s = s.trim();

for (int i = 0; i < s.length();i++) {

s1 = s.substring(i,i+1);

if (s1.equals(" ")) {

s1 = s.substring(i + 1,i + 2);

if (s.equals(" ")) continue;

else s2 = s2 + s.substring(i,i + 1);

} else s2 = s2 + s1;

}

System.out.print(s2);

Chương trình trên in ra kết quả là bao nhiêu?

A.

Van An

B.

Nguyen Van An

C.

An

D.

Lỗi biên dịch

Trả lời:

Đáp án đúng: B


Đoạn chương trình duyệt qua chuỗi "Nguyen Van An". - `s = s.trim();` loại bỏ khoảng trắng ở đầu và cuối chuỗi (trong trường hợp này không có). - Vòng lặp `for` duyệt từng ký tự của chuỗi. - `s1 = s.substring(i, i+1);` lấy ra ký tự tại vị trí `i`. - `if (s1.equals(" "))` kiểm tra nếu ký tự đó là khoảng trắng: - Nếu là khoảng trắng, đoạn code lấy ký tự tiếp theo `s1 = s.substring(i + 1, i + 2);` và kiểm tra `if (s.equals(" ")) continue;`. Ở đây có một lỗi logic, điều kiện `s.equals(" ")` luôn sai vì `s` là "Nguyen Van An". Do đó nhánh `else s2 = s2 + s.substring(i,i + 1);` sẽ được thực hiện, thêm khoảng trắng vào `s2`. - `else s2 = s2 + s1;` nếu ký tự không phải là khoảng trắng, nó sẽ được thêm vào `s2`. Vì vậy, chuỗi kết quả `s2` sẽ là chuỗi gốc "Nguyen Van An".

Câu hỏi liên quan