Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static String convertNumericToSymbolicNotation(String mode) {
- if (!mode.matches("[0-7]+")) {
- throw new IllegalArgumentException("Invalid characters in string " + mode);
- }
- char[] arr = mode.toCharArray();
- final int length = arr.length;
- if (length != 3 && length != 4) {
- throw new IllegalArgumentException("Invalid length. Expected 3 or 4, got " + length);
- }
- final String special;
- if (length == 4) {
- special = parseSpecialFromChar(arr[0]);
- arr = mode.substring(1).toCharArray();
- } else {
- special = "---";
- }
- String p = "";
- for (int i = 0; i < 3; i++) {
- char s = special.charAt(i);
- L.i("FOO", "s=" + s + "|c=" + arr[i]);
- switch (arr[i]) {
- case '0':
- p += s == '-' ? "---" : "--" + Character.toUpperCase(s);
- break;
- case '1':
- p += s == '-' ? "--x" : "--" + s;
- break;
- case '2':
- p += "-w-";
- break;
- case '3':
- p += s == '-' ? "-wx" : "-w" + s;
- break;
- case '4':
- p += s == '-' ? "r--" : "r-" + Character.toUpperCase(s);
- break;
- case '5':
- p += s == '-' ? "r-x" : "r-" + s;
- break;
- case '6':
- p += "rw-";
- break;
- case '7':
- p += s == '-' ? "rwx" : "rw" + s;
- break;
- }
- }
- return p;
- }
- private static String parseSpecialFromChar(char c) {
- L.i("FOO", "c="+c);
- switch (c) {
- case '0':
- return "---";
- case '1':
- return "--t";
- case '2':
- return "-s-";
- case '3':
- return "-st";
- case '4':
- return "s--";
- case '5':
- return "s-t";
- case '6':
- return "ss-";
- case '7':
- return "sst";
- default:
- return "---";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement