2012-01-24 4 views
12

표준 Java 라이브러리 중 하나에 이미 rot13()unrot13() 구현이 있습니까? 아니면 직접 작성해야하고 "바퀴를 재발 명"해야합니까?자바에서 ROT-13 함수?

이 같은 것을 볼 수 있습니다

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 개인적으로 rot104을 선호 저장 내 기능을 기여할 수 있습니다. 보안 목적으로 사용한다고 말하는 –

+0

@BNL LOL이 있지만 전용 코 프로세서가 필요합니까? 참조 [이] (http://stackoverflow.com/questions/3928903/what-are-some-practical-applications-of-the-rot13-algorithm) –

+8

그건 그렇고, rot13 자체 역이다, 그래서 당신은 ' 실제로 "unrot13"메소드가 필요합니다. –

답변

16

내가 그것을 기본적으로 자바의 일부이지만, 여기 당신이 그것을 구현할 수있는 방법의 예를 생각하지 않습니다를;

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(); 
    } 

} 

출처 : http://introcs.cs.princeton.edu/java/31datatype/Rot13.java.html

+0

무엇, 아니 모드 op? – yshavit

19

뿐만 아니라 다른 개발자에게 가치있는 초

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

시간을내어 주셔서 감사합니다. –

+0

http://introcs.cs.princeton.edu/java/31datatype/Rot13.java.html도 복사 했습니까? –