static S formatXYZ(S pattern, L args) { L tok = javaTok(pattern); for (int i = 1; i < l(tok); i += 2) { S t = tok.get(i); int idx = -1; if (l(t) == 1 && eqOneOf(t, "X", "Y", "Z")) idx = charDiff(t.charAt(0), 'X'); else if (l(t) == 2 && t.startsWith("A")) { char c = t.charAt(1); if (c >= 'A' && c <= 'Z') idx = 3 + charDiff(t.charAt(1), 'A'); } if (idx >= 0 && l(args) > idx) tok.set(i, args.get(idx)); } ret join(tok); } static S formatXYZ(S pattern, S... args) { ret formatXYZ(pattern, asList(args)); }