2012-01-24 19 views
12

Có thực hiện rot13()unrot13() như là một phần của một trong các thư viện Java chuẩn không? Hay tôi phải tự mình viết và "tái tạo lại bánh xe"?Chức năng ROT-13 trong java?

Nó có thể giống như thế này:

int rot13 (int c) { 
    if ((c >= 'A') && (c <= 'Z')) 
    c=(((c-'A')+13)%26)+'A'; 

    if ((c >= 'a') && (c <= 'z')) 
    c=(((c-'a')+13)%26)+'a'; 

    return c; 
} 
+0

@BNL Cá nhân tôi thích rot104. Yêu cầu một bộ xử lý đồng bộ chuyên dụng mặc dù –

+0

@BNL LOL, người đã nói rằng đó là vì mục đích bảo mật? Xem [this] (http://stackoverflow.com/questions/3928903/what-are-some-practical-applications-of-the-rot13-algorithm) –

+8

Bằng cách này, rot13 là nghịch đảo riêng của nó, vì vậy bạn không ' t thực sự cần một phương thức "unrot13". –

Trả lời

16

Tôi không nghĩ rằng nó là một phần của Java theo mặc định, nhưng đây là một ví dụ về cách bạn có thể thực hiện nó;

public class Rot13 { 

    public static void main(String[] args) { 
     String s = args[0]; 
     for (int i = 0; i < s.length(); i++) { 
      char c = s.charAt(i); 
      if  (c >= 'a' && c <= 'm') c += 13; 
      else if (c >= 'A' && c <= 'M') c += 13; 
      else if (c >= 'n' && c <= 'z') c -= 13; 
      else if (c >= 'N' && c <= 'Z') c -= 13; 
      System.out.print(c); 
     } 
     System.out.println(); 
    } 

} 

Nguồn: http://introcs.cs.princeton.edu/java/31datatype/Rot13.java.html

+0

cái gì, không có mod op? – yshavit

19

cũng có thể góp phần chức năng của tôi để tiết kiệm các nhà phát triển khác có giá trị giây

public static String rot13(String input) { 
    StringBuilder sb = new StringBuilder(); 
    for (int i = 0; i < input.length(); i++) { 
     char c = input.charAt(i); 
     if  (c >= 'a' && c <= 'm') c += 13; 
     else if (c >= 'A' && c <= 'M') c += 13; 
     else if (c >= 'n' && c <= 'z') c -= 13; 
     else if (c >= 'N' && c <= 'Z') c -= 13; 
     sb.append(c); 
    } 
    return sb.toString(); 
} 
+0

Cảm ơn bạn đã dành thời gian để đưa điều này vào một phương pháp. –

+0

Bạn cũng đã sao chép http://introcs.cs.princeton.edu/java/31datatype/Rot13.java.html? –

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