2015-11-25 28 views
6

Tôi không thể giải thích về tiêu đề, ý tôi là - lấy một chuỗi và kiểm tra từng chữ cái và in nó nếu char tiếp theo trong chuỗi cũng là chữ cái tiếp theo theo thứ tự ABC, ví dụ "almndrefg" sẽ trả về "lmnefg", những gì tôi đã làm cho đến thời điểm này là:Chỉ in các chữ cái theo thứ tự ABC từ chuỗi

package strings; 

import java.util.Scanner; 

public class P58Targil7 { 
    public static Scanner in = new Scanner(System.in); 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     String st2 = in.next(); 
     check(st2); 
    } 

    public static void check(String st1) { 
     char sec,fir; 
     for (int i = 0; i < st1.length() - 1; i++) { 
      sec = st1.charAt(i + 1); 
      fir = st1.charAt(i); 
      sec--; 
      if (fir == sec) 
       System.out.print(fir); 
     } 
    } 
} 

Tôi nên sửa những gì?

+0

lưu giữ tất cả các ký tự có thể (26 hoặc 52, nếu bạn muốn A và được xử lý khác), và kiểm tra xem có in hay không. – Stultuske

+6

Làm thế nào để "lmnefg" theo thứ tự ABC? – Maroun

+0

Hành vi hiện tại là gì? –

Trả lời

3

Bạn gặp lỗi nhỏ, vì bạn đã tăng sec thay vì fir.

Ngoài ra, bạn phải xử lý việc in chữ thứ hai trong mỗi cặp liên tiếp và đảm bảo mỗi chữ cái chỉ được in một lần.

char sec,fir; 
    boolean lastPrinted = false; 
    for (int i = 0; i < st1.length() - 1; i++) { 
     fir = st1.charAt(i); 
     sec = st1.charAt(i + 1); 
     if (fir + 1 == sec) { 
      if (!lastPrinted) { 
       System.out.print(fir); 
      } 
      System.out.print(sec); 
      lastPrinted = true; 
     } else { 
      lastPrinted = false; 
     } 
    } 
+0

Bạn không bao giờ đặt lại lastPrinted thành false trên (không tồn tại) tuyên bố khác. Ngoài ra, hãy xem xét sử dụng dấu ngoặc nhọn cho ifs, ngay cả khi nó chỉ chứa một lệnh, vì điều này dẫn đến ít lỗi hơn khi chỉnh sửa hoặc đọc sau này. –

+0

Cảm ơn, tôi đã tìm thấy lỗi và sửa nó nhưng nó vẫn không hoạt động, tôi đã sao chép mã của bạn và cho String abcomn nó chỉ trả về abcn, nó không bao gồm M, tôi nên làm gì tiếp theo? תודה גבר: P – DAVIDBALAS1

+0

Cảm ơn bạn! cố định nó, toda. – DAVIDBALAS1

Các vấn đề liên quan