fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6. import java.util.stream.Collectors;
  7.  
  8. /* Name of the class has to be "Main" only if the class is public. */
  9. class Ideone
  10. {
  11. public static void main (String[] args) throws java.lang.Exception
  12. {
  13. String[] tests = new String[]{ "abcdefghijklmnopqrstuvwxyz"
  14. ,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"};
  15. int shift = -3;
  16. for (String str: tests) {
  17. String out = str.chars()
  18. .map(i -> mapChar(i, shift))
  19. .collect( StringBuilder::new
  20. , StringBuilder::appendCodePoint
  21. , StringBuilder::append)
  22. .toString();
  23. System.out.println(str + " -> " + out);
  24. }
  25. }
  26.  
  27. public static int mapChar(int c, int shift) {
  28. final int alpha_len = 'z' - 'a' + 1;
  29. shift = shift % alpha_len + alpha_len * (shift < 0 ? 1 : 0);
  30. if ('a' <= c && c <= 'z') return (c + shift - 'a') % alpha_len + 'a';
  31. if ('A' <= c && c <= 'Z') return (c + shift - 'A') % alpha_len + 'A';
  32. return c;
  33. }
  34. }
Success #stdin #stdout 0.09s 711680KB
stdin
Standard input is empty
stdout
abcdefghijklmnopqrstuvwxyz -> xyzabcdefghijklmnopqrstuvw
ABCDEFGHIJKLMNOPQRSTUVWXYZ -> XYZABCDEFGHIJKLMNOPQRSTUVW