Kiểm tra xem chuỗi vừa nhập có phải là alphabet không

public static boolean isAlphabetical(String s) {
    s = s.toLowerCase();
    for (int i = 0; i < s.length() - 1; ++i) {
      if (!Character.isLetter(s.charAt(i)) || !(s.charAt(i) <= s.charAt(i + 1))) {
        return false;
      }
    }
    return true;
  }

Các bác cho hỏi đoạn s.charAt(i) <= s.charAt(i + 1) để làm gì nhỉ? nó hoạt động như nào để check

Character.isLetter(s.charAt(i)) để kiểm tra xem kí tự thứ i của xâu s có phải là kí tự trong bảng chữ cái hay không. Nếu thuộc bảng chữ cái thì trả về true và ngược lại.
Thêm ! ở đầu nên sẽ phủ định thành kiểm tra xem kí tự thứ i có không thuộc bảng chữ cái hay không. Nếu thuộc bảng chữ cái thì trả về false và ngược lại.

Cái này dùng để kiểm tra thứ tự.
s.charAt(i) <= s.charAt(i + 1) để kiểm tra xem kí tự thứ i có đứng trước kí tự thứ i + 1 trong bảng chữ cái hay không. Nếu đứng trước thì cho true và ngược lại. Tìm hiểu về ASCII sẽ biết nó check kiểu gì.
Dấu ! ở trước để phủ định. Nếu đứng trước thì cho false và ngược lại.


8 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?