private static void addRepresentativeHangul( UnicodeSet resultToAddTo, int leng, boolean noFirstConsonant) { UnicodeSet notYetSeen = new UnicodeSet(); for (char c = '\uAC00'; c < '\uD7AF'; ++c) { String charStr = String.valueOf(c); String decomp = Normalizer.decompose(charStr, false); if (decomp.length() != leng) { continue; // only take one length at a time } if (decomp.startsWith("ᄋ") != noFirstConsonant) { continue; } if (!notYetSeen.containsAll(decomp)) { resultToAddTo.add(c); notYetSeen.addAll(decomp); } } }