Подтвердить что ты не робот

Функция ROT-13 в java?

Существует ли уже реализация rot13() и unrot13() как часть одной из стандартных библиотек Java? Или мне нужно написать его сам и "изобретать велосипед"?

Он может выглядеть примерно так:

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; 
}
4b9b3361

Ответ 1

Я не думаю, что это часть Java по умолчанию, но вот пример того, как вы можете ее реализовать;

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

Ответ 2

Могу также внести вклад в мою функцию, чтобы сохранить других разработчиков ценные секунды

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