Hỏi đáp
Chia sẻ kiến thức, cùng nhau phát triển
Em là một newer . mn cho em hỏi là ở cái chổ vòng for i< S.length()-2 . tại sao phải là -2 ạ> em để S.length thì chương trình báo sai ạ !
Em là một newer . mn cho em hỏi là ở cái chổ vòng for i< S.length()-2 . tại sao phải là -2 ạ> em để S.length thì chương trình báo sai ạ !
public class TachChuoi {
static void DemChuoi(){
String S = "abcdefghijklmnopqmknabchgkihpaabcoijhabc";
int dem=0;
for (int i = 0; i < S.length()-2; i++) {
String S1 = S.substring(i, i+3);
if(S1.equals("abc")){
dem++;
}
}
System.out.println(dem);
}
public static void main(String[] args) {
DemChuoi();
}
}
123456789101112131415161718
Để sử dụng tính năng này, Bạn cần đăng nhập bằng tài khoản Howkteam.
Đăng nhập
Để xem được nội dung và giúp Kteam duy trì hoạt động.
Bạn vui lòng tắt Adblock trên website howkteam.vn nhé!
Để chuỗi nó chạy và kiểm tra lần cuối cùng bắt đầu từ ký tự thứ 3 từ dưới đếm lên
Vậy nên nó chạy đến chữ a cuối cùng từ dưới đếm lên thì biến Dem++ được . nhưng để nó chạy qua chữ b mà vẫn gán S1 = S.substring(i, i+3); thì nó chỉ lấy được "bc" + thêm 1 ký tự nữa nhưng không còn nữa vì đã là cuối chuỗi.
Vì cái chỗ này nè bạn
Nếu bạn chạy tời S.Length() - 1 thôi thì trường hợp Substring của i+3 sẽ vượt ra ngoài phạm vi của chuỗi