package com.what21.rot13;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
public final class Rot13 {
private static final Map map;
static {
final char[] lookup1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
.toCharArray();
final char[] lookup2 = "NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm"
.toCharArray();
Map m = new HashMap();
for (int i = 0; i < lookup1.length; i++) {
m.put(lookup1[i], lookup2[i]);
}
map = Collections.unmodifiableMap(m);
}
private Rot13() {
}
/**
* ROT-13 算法.
*
* @param inStr
* @return
*/
public static String cipher(final String inStr) {
char[] arr = inStr.toCharArray();
StringBuilder sb = new StringBuilder(arr.length);
for (char c : arr) {
Character out = map.get(c);
if (out == null) {
sb.append(c);
} else {
sb.append(out);
}
}
return sb.toString();
}
}