Created
July 15, 2015 11:09
-
-
Save mohitkanwar/7f374c7062994a4a6cc9 to your computer and use it in GitHub Desktop.
Password generation in User's Language
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.security.SecureRandom; | |
import java.util.ArrayList; | |
import java.util.HashMap; | |
import java.util.List; | |
import java.util.Locale; | |
import java.util.Map; | |
public class LocaleSpecificPasswordGenerator { | |
public static void main(String[] args) { | |
// 1. get locale : en_US/ es_US/ hi_IN / ud_PK | |
// 2. get language from locale | |
// 3. get script for language | |
// 4. get charset | |
// 5. get script characters from charset | |
// 6. generate random password | |
// 7. time wrap the password generation process | |
Locale lo = Locale.ENGLISH; | |
int passwordLength = 10; | |
String password = timeWrappedPasswordGeneration(lo, passwordLength); | |
System.out.println(password); | |
} | |
private static String timeWrappedPasswordGeneration(Locale lo, | |
int passwordLength) { | |
long curr = System.currentTimeMillis(); | |
String password = null; | |
while (System.currentTimeMillis() - curr < 50) { | |
password = generateRandomPassword( | |
getCharListForScript(getScriptFromLanguage(lo.getLanguage())), | |
passwordLength); | |
} | |
return password; | |
} | |
private static String getScriptFromLanguage(String languageCode) { | |
String script = ""; | |
switch (languageCode) { | |
case "ar": | |
script = "Arabic"; | |
break; | |
case "as": | |
script = "Bengali and Assamese"; | |
break; | |
case "be": | |
script = "Cyrillic"; | |
break; | |
case "bg": | |
script = "Cyrillic"; | |
break; | |
case "bn": | |
script = "Bengali and Assamese"; | |
break; | |
case "ca": | |
script = "Latin"; | |
break; | |
case "cs": | |
script = "Latin"; | |
break; | |
case "da": | |
script = "Latin"; | |
break; | |
case "de": | |
script = "Latin"; | |
break; | |
case "el": | |
script = "Greek"; | |
break; | |
case "en": | |
script = "Latin"; | |
break; | |
case "es": | |
script = "Latin"; | |
break; | |
case "et": | |
script = "Latin"; | |
break; | |
case "fi": | |
script = "Latin"; | |
break; | |
case "fr": | |
script = "Latin"; | |
break; | |
case "ga": | |
script = "Latin"; | |
break; | |
case "gu": | |
script = "Gujarati"; | |
break; | |
case "he": | |
script = "Samaritan"; | |
break; | |
case "hi": | |
script = "Devanagari"; | |
break; | |
case "hr": | |
script = "Latin"; | |
break; | |
case "hu": | |
script = "Old Hungarian"; | |
break; | |
case "hy": | |
script = "Armenian"; | |
break; | |
case "in": | |
script = "Latin"; | |
break; | |
case "is": | |
script = "Latin"; | |
break; | |
case "it": | |
script = "Latin"; | |
break; | |
case "iw": | |
script = "Hebrew"; | |
break; | |
case "ja": | |
script = "Katakana"; | |
break; | |
case "ka": | |
script = "Georgian"; | |
break; | |
case "kn": | |
script = "Kannada"; | |
break; | |
case "ko": | |
script = "Hangul Jamo"; | |
break; | |
case "lt": | |
script = "Latin"; | |
break; | |
case "lv": | |
script = "Latin"; | |
break; | |
case "mk": | |
script = "Cyrillic"; | |
break; | |
case "ml": | |
script = "Malayalam"; | |
break; | |
case "mn": | |
script = "Mongolian"; | |
break; | |
case "ms": | |
script = "Latin"; | |
break; | |
case "mt": | |
script = "Latin"; | |
break; | |
case "ne": | |
script = "Limbu"; | |
break; | |
case "nl": | |
script = "Latin"; | |
break; | |
case "no": | |
script = "Latin"; | |
break; | |
case "or": | |
script = "Oriya"; | |
break; | |
case "pa": | |
script = "Gurmukhi"; | |
break; | |
case "pa-IN": | |
script = "Gurmukhi"; | |
break; | |
case "pl": | |
script = "Latin"; | |
break; | |
case "pt": | |
script = "Latin"; | |
break; | |
case "ro": | |
script = "Latin"; | |
break; | |
case "ru": | |
script = "Cyrillic"; | |
break; | |
case "sk": | |
script = "Latin"; | |
break; | |
case "sl": | |
script = "Latin"; | |
break; | |
case "sq": | |
script = "Caucasian Albanian"; | |
break; | |
case "sr": | |
script = "Cyrillic"; | |
break; | |
case "sv": | |
script = "Latin"; | |
break; | |
case "ta": | |
script = "Tamil"; | |
break; | |
case "te": | |
script = "Telugu"; | |
break; | |
case "th": | |
script = "Thai"; | |
break; | |
case "tr": | |
script = "Latin"; | |
break; | |
case "uk": | |
script = "Cyrillic"; | |
break; | |
case "vi": | |
script = "Latin"; | |
break; | |
case "zh": | |
script = "CJK Unified Ideographs (Han)"; | |
break; | |
default: | |
script = "Latin"; | |
} | |
return script; | |
} | |
private static String generateRandomPassword(List<Character> charlist, | |
int length) { | |
StringBuilder sb = new StringBuilder(); | |
if (charlist.size() > 0) { | |
while (sb.length() < length) { | |
SecureRandom random = new SecureRandom(); | |
int charAt = random.nextInt(charlist.size()); | |
sb.append(charlist.get(charAt)); | |
} | |
} | |
return sb.toString(); | |
} | |
private static List<Character> getCharListForScript(String script) { | |
Map<String, Character> initialMap = new HashMap<String, Character>(); | |
Map<String, Character> finalMap = new HashMap<String, Character>(); | |
initialMap.put("Armenian", '\u0530'); | |
finalMap.put("Armenian", '\u058F'); | |
initialMap.put("Armenian Ligatures", '\uFB13'); | |
finalMap.put("Armenian Ligatures", '\uFB17'); | |
// initialMap.put("Caucasian Albanian",'\u10530'); | |
// finalMap.put("Caucasian Albanian",'\u1056F'); | |
// initialMap.put("Cypriot Syllabary",'\u10800'); | |
// finalMap.put("Cypriot Syllabary",'\u1083F'); | |
initialMap.put("Cyrillic", '\u0400'); | |
finalMap.put("Cyrillic", '\u04FF'); | |
initialMap.put("Cyrillic Supplement", '\u0500'); | |
finalMap.put("Cyrillic Supplement", '\u052F'); | |
initialMap.put("Cyrillic Extended-A", '\u2DE0'); | |
finalMap.put("Cyrillic Extended-A", '\u2DFF'); | |
initialMap.put("Cyrillic Extended-B", '\uA640'); | |
finalMap.put("Cyrillic Extended-B", '\uA69F'); | |
// initialMap.put("Elbasan",'\u10500'); | |
// finalMap.put("Elbasan",'\u1052F'); | |
initialMap.put("Georgian", '\u10A0'); | |
finalMap.put("Georgian", '\u10FF'); | |
initialMap.put("Georgian Supplement", '\u2D00'); | |
finalMap.put("Georgian Supplement", '\u2D2F'); | |
initialMap.put("Glagolitic", '\u2C00'); | |
finalMap.put("Glagolitic", '\u2C5F'); | |
// initialMap.put("Gothic",'\u10330'); | |
// finalMap.put("Gothic",'\u1034F'); | |
initialMap.put("Greek", '\u0370'); | |
finalMap.put("Greek", '\u03FF'); | |
initialMap.put("Greek Extended", '\u1F00'); | |
finalMap.put("Greek Extended", '\u1FFF'); | |
// initialMap.put("Ancient Greek Numbers",'\u10140'); | |
// finalMap.put("Ancient Greek Numbers",'\u1018F'); | |
initialMap.put("Latin", '\u0020'); | |
finalMap.put("Latin", '\u007E'); | |
initialMap.put("Basic Latin (ASCII)", '\u0000'); | |
finalMap.put("Basic Latin (ASCII)", '\u007F'); | |
initialMap.put("Latin-1 Supplement", '\u0080'); | |
finalMap.put("Latin-1 Supplement", '\u00FF'); | |
initialMap.put("Latin Extended-A", '\u0100'); | |
finalMap.put("Latin Extended-A", '\u017F'); | |
initialMap.put("Latin Extended-B", '\u0180'); | |
finalMap.put("Latin Extended-B", '\u024F'); | |
initialMap.put("Latin Extended-C", '\u2C60'); | |
finalMap.put("Latin Extended-C", '\u2C7F'); | |
initialMap.put("Latin Extended-D", '\uA720'); | |
finalMap.put("Latin Extended-D", '\uA7FF'); | |
initialMap.put("Latin Extended-E", '\uAB30'); | |
finalMap.put("Latin Extended-E", '\uAB6F'); | |
initialMap.put("Latin Extended Additional", '\u1E00'); | |
finalMap.put("Latin Extended Additional", '\u1EFF'); | |
initialMap.put("Latin Ligatures", '\uFB00'); | |
finalMap.put("Latin Ligatures", '\uFB06'); | |
initialMap.put("Fullwidth Latin Letters", '\uFF00'); | |
finalMap.put("Fullwidth Latin Letters", '\uFF5E'); | |
initialMap.put("IPA Extensions", '\u0250'); | |
finalMap.put("IPA Extensions", '\u02AF'); | |
initialMap.put("Phonetic Extensions", '\u1D00'); | |
finalMap.put("Phonetic Extensions", '\u1D7F'); | |
initialMap.put("Phonetic Extensions Supplement", '\u1D80'); | |
finalMap.put("Phonetic Extensions Supplement", '\u1DBF'); | |
// initialMap.put("Linear A",'\u10600'); | |
// finalMap.put("Linear A",'\u1077F'); | |
// initialMap.put("Linear B Syllabary",'\u10000'); | |
// finalMap.put("Linear B Syllabary",'\u1007F'); | |
// initialMap.put("Linear B Ideograms",'\u10080'); | |
// finalMap.put("Linear B Ideograms",'\u100FF'); | |
// initialMap.put("Aegean Numbers",'\u10100'); | |
// finalMap.put("Aegean Numbers",'\u1013F'); | |
initialMap.put("Ogham", '\u1680'); | |
finalMap.put("Ogham", '\u169F'); | |
// initialMap.put("Old Hungarian",'\u10C80'); | |
// finalMap.put("Old Hungarian",'\u10CFF'); | |
// initialMap.put("Old Italic",'\u10300'); | |
// finalMap.put("Old Italic",'\u1032F'); | |
// initialMap.put("Old Permic",'\u10350'); | |
// finalMap.put("Old Permic",'\u1037F'); | |
// initialMap.put("Phaistos Disc",'\u101D0'); | |
// finalMap.put("Phaistos Disc",'\u101FF'); | |
initialMap.put("Runic", '\u16A0'); | |
finalMap.put("Runic", '\u16FF'); | |
// initialMap.put("Shavian",'\u10450'); | |
// finalMap.put("Shavian",'\u1047F'); | |
initialMap.put("Modifier Tone Letters", '\uA700'); | |
finalMap.put("Modifier Tone Letters", '\uA71F'); | |
initialMap.put("Spacing Modifier Letters", '\u02B0'); | |
finalMap.put("Spacing Modifier Letters", '\u02FF'); | |
initialMap.put("Superscripts and Subscripts", '\u2070'); | |
finalMap.put("Superscripts and Subscripts", '\u209F'); | |
initialMap.put("Combining Diacritical Marks", '\u0300'); | |
finalMap.put("Combining Diacritical Marks", '\u036F'); | |
initialMap.put("Combining Diacritical Marks Extended", '\u1AB0'); | |
finalMap.put("Combining Diacritical Marks Extended", '\u1AFF'); | |
initialMap.put("Combining Diacritical Marks Supplement", '\u1DC0'); | |
finalMap.put("Combining Diacritical Marks Supplement", '\u1DFF'); | |
initialMap.put("Combining Diacritical Marks for Symbols", '\u20D0'); | |
finalMap.put("Combining Diacritical Marks for Symbols", '\u20FF'); | |
initialMap.put("Combining Half Marks", '\uFE20'); | |
finalMap.put("Combining Half Marks", '\uFE2F'); | |
initialMap.put("Bamum", '\uA6A0'); | |
finalMap.put("Bamum", '\uA6FF'); | |
// initialMap.put("Bamum Supplement",'\u16800'); | |
// finalMap.put("Bamum Supplement",'\u16A3F'); | |
// initialMap.put("Bassa Vah",'\u16AD0'); | |
// finalMap.put("Bassa Vah",'\u16AFF'); | |
initialMap.put("Coptic", '\u2C80'); | |
finalMap.put("Coptic", '\u2CFF'); | |
initialMap.put("Coptic in Greek block", '\u03E2'); | |
finalMap.put("Coptic in Greek block", '\u03EF'); | |
// initialMap.put("Coptic Epact Numbers",'\u102E0'); | |
// finalMap.put("Coptic Epact Numbers",'\u102FF'); | |
// initialMap.put("Egyptian Hieroglyphs",'\u13000'); | |
// finalMap.put("Egyptian Hieroglyphs",'\u1342F'); | |
initialMap.put("Ethiopic", '\u1200'); | |
finalMap.put("Ethiopic", '\u137F'); | |
initialMap.put("Ethiopic Supplement", '\u1380'); | |
finalMap.put("Ethiopic Supplement", '\u139F'); | |
initialMap.put("Ethiopic Extended", '\u2D80'); | |
finalMap.put("Ethiopic Extended", '\u2DDF'); | |
initialMap.put("Ethiopic Extended-A", '\uAB00'); | |
finalMap.put("Ethiopic Extended-A", '\uAB2F'); | |
// initialMap.put("Mende Kikakui",'\u1E800'); | |
// finalMap.put("Mende Kikakui",'\u1E8DF'); | |
// initialMap.put("Meroitic Cursive",'\u109A0'); | |
// finalMap.put("Meroitic Cursive",'\u109FF'); | |
// initialMap.put("Meroitic Hieroglyphs",'\u10980'); | |
// finalMap.put("Meroitic Hieroglyphs",'\u1099F'); | |
initialMap.put("N'Ko", '\u07C0'); | |
finalMap.put("N'Ko", '\u07FF'); | |
// initialMap.put("Osmanya",'\u10480'); | |
// finalMap.put("Osmanya",'\u104AF'); | |
initialMap.put("Tifinagh", '\u2D30'); | |
finalMap.put("Tifinagh", '\u2D7F'); | |
initialMap.put("Vai", '\uA500'); | |
finalMap.put("Vai", '\uA63F'); | |
// initialMap.put("Anatolian Hieroglyphs",'\u14400'); | |
// finalMap.put("Anatolian Hieroglyphs",'\u1467F'); | |
initialMap.put("Arabic", '\u0600'); | |
finalMap.put("Arabic", '\u06FF'); | |
initialMap.put("Arabic Supplement", '\u0750'); | |
finalMap.put("Arabic Supplement", '\u077F'); | |
initialMap.put("Arabic Extended-A", '\u08A0'); | |
finalMap.put("Arabic Extended-A", '\u08FF'); | |
initialMap.put("Arabic Presentation Forms-A", '\uFB50'); | |
finalMap.put("Arabic Presentation Forms-A", '\uFDFF'); | |
initialMap.put("Arabic Presentation Forms-B", '\uFE70'); | |
finalMap.put("Arabic Presentation Forms-B", '\uFEFF'); | |
// initialMap.put("Aramaic, Imperial",'\u10840'); | |
// finalMap.put("Aramaic, Imperial",'\u1085F'); | |
// initialMap.put("Avestan",'\u10B00'); | |
// finalMap.put("Avestan",'\u10B3F'); | |
// initialMap.put("Carian",'\u102A0'); | |
// finalMap.put("Carian",'\u102DF'); | |
// initialMap.put("Cuneiform",'\u12000'); | |
// finalMap.put("Cuneiform",'\u123FF'); | |
// initialMap.put("Cuneiform Numbers and Punctuation",'\u12400'); | |
// finalMap.put("Cuneiform Numbers and Punctuation",'\u1247F'); | |
// initialMap.put("Early Dynastic Cuneiform",'\u12480'); | |
// finalMap.put("Early Dynastic Cuneiform",'\u1254F'); | |
// initialMap.put("Old Persian",'\u103A0'); | |
// finalMap.put("Old Persian",'\u103DF'); | |
// initialMap.put("Ugaritic",'\u10380'); | |
// finalMap.put("Ugaritic",'\u1039F'); | |
// initialMap.put("Hatran",'\u108E0'); | |
// finalMap.put("Hatran",'\u108FF'); | |
initialMap.put("Hebrew", '\u0590'); | |
finalMap.put("Hebrew", '\u05FF'); | |
initialMap.put("Hebrew Presentation Forms", '\uFB1D'); | |
finalMap.put("Hebrew Presentation Forms", '\uFB4F'); | |
// initialMap.put("Lycian",'\u10280'); | |
// finalMap.put("Lycian",'\u1029F'); | |
// initialMap.put("Lydian",'\u10920'); | |
// finalMap.put("Lydian",'\u1093F'); | |
initialMap.put("Mandaic", '\u0840'); | |
finalMap.put("Mandaic", '\u085F'); | |
// initialMap.put("Nabataean",'\u10880'); | |
// finalMap.put("Nabataean",'\u108AF'); | |
// initialMap.put("Old North Arabian",'\u10A80'); | |
// finalMap.put("Old North Arabian",'\u10A9F'); | |
// initialMap.put("Old South Arabian",'\u10A60'); | |
// finalMap.put("Old South Arabian",'\u10A7F'); | |
// initialMap.put("Pahlavi, Inscriptional",'\u10B60'); | |
// finalMap.put("Pahlavi, Inscriptional",'\u10B7F'); | |
// initialMap.put("Pahlavi, Psalter",'\u10B80'); | |
// finalMap.put("Pahlavi, Psalter",'\u10BAF'); | |
// initialMap.put("Palmyrene",'\u10860'); | |
// finalMap.put("Palmyrene",'\u1087F'); | |
// initialMap.put("Parthian, Inscriptional",'\u10B40'); | |
// finalMap.put("Parthian, Inscriptional",'\u10B5F'); | |
// initialMap.put("Phoenician",'\u10900'); | |
// finalMap.put("Phoenician",'\u1091F'); | |
initialMap.put("Samaritan", '\u0800'); | |
finalMap.put("Samaritan", '\u083F'); | |
initialMap.put("Syriac", '\u0700'); | |
finalMap.put("Syriac", '\u074F'); | |
// initialMap.put("Manichaean",'\u10AC0'); | |
// finalMap.put("Manichaean",'\u10AFF'); | |
initialMap.put("Mongolian", '\u1800'); | |
finalMap.put("Mongolian", '\u18AF'); | |
// initialMap.put("Old Turkic",'\u10C00'); | |
// finalMap.put("Old Turkic",'\u10C4F'); | |
// initialMap.put("Phags-Pa",'\u10C00'); | |
// finalMap.put("Phags-Pa",'\u10C4F'); | |
initialMap.put("Tibetan", '\u0F00'); | |
finalMap.put("Tibetan", '\u0FFF'); | |
// initialMap.put("Ahom",'\u11700'); | |
// finalMap.put("Ahom",'\u1173F'); | |
initialMap.put("Bengali and Assamese", '\u0980'); | |
finalMap.put("Bengali and Assamese", '\u09FF'); | |
// initialMap.put("Brahmi",'\u11000'); | |
// finalMap.put("Brahmi",'\u1107F'); | |
// initialMap.put("Chakma",'\u11100'); | |
// finalMap.put("Chakma",'\u1114F'); | |
initialMap.put("Devanagari", '\u0900'); | |
finalMap.put("Devanagari", '\u097F'); | |
initialMap.put("Devanagari Extended", '\uA8E0'); | |
finalMap.put("Devanagari Extended", '\uA8FF'); | |
// initialMap.put("Grantha",'\u11300'); | |
// finalMap.put("Grantha",'\u1137F'); | |
initialMap.put("Gujarati", '\u0A80'); | |
finalMap.put("Gujarati", '\u0AFF'); | |
initialMap.put("Gurmukhi", '\u0A05'); | |
finalMap.put("Gurmukhi", '\u0A71'); | |
// initialMap.put("Kaithi",'\u11080'); | |
// finalMap.put("Kaithi",'\u110CF'); | |
initialMap.put("Kannada", '\u0C80'); | |
finalMap.put("Kannada", '\u0CFF'); | |
// initialMap.put("Kharoshthi",'\u10A00'); | |
// finalMap.put("Kharoshthi",'\u10A5F'); | |
// initialMap.put("Khojki",'\u11200'); | |
// finalMap.put("Khojki",'\u1124F'); | |
// initialMap.put("Khudawadi",'\u112B0'); | |
// finalMap.put("Khudawadi",'\u112FF'); | |
initialMap.put("Lepcha", '\u1C00'); | |
finalMap.put("Lepcha", '\u1C4F'); | |
initialMap.put("Limbu", '\u1900'); | |
finalMap.put("Limbu", '\u194F'); | |
// initialMap.put("Mahajani",'\u11150'); | |
// finalMap.put("Mahajani",'\u1117F'); | |
initialMap.put("Malayalam", '\u0D00'); | |
finalMap.put("Malayalam", '\u0D7F'); | |
initialMap.put("Meetei Mayek", '\uABC0'); | |
finalMap.put("Meetei Mayek", '\uABFF'); | |
initialMap.put("Meetei Mayek Extensions", '\uAAE0'); | |
finalMap.put("Meetei Mayek Extensions", '\uAAFF'); | |
// initialMap.put("Modi",'\u11600'); | |
// finalMap.put("Modi",'\u1165F'); | |
// initialMap.put("Mro",'\u16A40'); | |
// finalMap.put("Mro",'\u16A6F'); | |
// initialMap.put("Multani",'\u11280'); | |
// finalMap.put("Multani",'\u112AF'); | |
initialMap.put("Ol Chiki", '\u1C50'); | |
finalMap.put("Ol Chiki", '\u1C7F'); | |
initialMap.put("Oriya (Odia)", '\u0B00'); | |
finalMap.put("Oriya (Odia)", '\u0B7F'); | |
initialMap.put("Saurashtra", '\uA880'); | |
finalMap.put("Saurashtra", '\uA8DF'); | |
// initialMap.put("Sharada",'\u11180'); | |
// finalMap.put("Sharada",'\u111DF'); | |
// initialMap.put("Siddham",'\u11580'); | |
// finalMap.put("Siddham",'\u115FF'); | |
initialMap.put("Sinhala", '\u0D80'); | |
finalMap.put("Sinhala", '\u0DFF'); | |
// initialMap.put("Sinhala Archaic Numbers",'\u111E0'); | |
// finalMap.put("Sinhala Archaic Numbers",'\u111FF'); | |
// initialMap.put("Sora Sompeng",'\u110D0'); | |
// finalMap.put("Sora Sompeng",'\u110FF'); | |
initialMap.put("Syloti Nagri", '\uA800'); | |
finalMap.put("Syloti Nagri", '\uA82F'); | |
// initialMap.put("Takri",'\u11680'); | |
// finalMap.put("Takri",'\u116CF'); | |
initialMap.put("Tamil", '\u0B80'); | |
finalMap.put("Tamil", '\u0BFF'); | |
initialMap.put("Telugu", '\u0C00'); | |
finalMap.put("Telugu", '\u0C7F'); | |
initialMap.put("Thaana", '\u0780'); | |
finalMap.put("Thaana", '\u07BF'); | |
// initialMap.put("Tirhuta",'\u11480'); | |
// finalMap.put("Tirhuta",'\u114DF'); | |
initialMap.put("Vedic Extensions", '\u1CD0'); | |
finalMap.put("Vedic Extensions", '\u1CFF'); | |
// initialMap.put("Warang Citi",'\u118A0'); | |
// finalMap.put("Warang Citi",'\u118FF'); | |
initialMap.put("Cham", '\uAA00'); | |
finalMap.put("Cham", '\uAA5F'); | |
initialMap.put("Kayah Li", '\uA900'); | |
finalMap.put("Kayah Li", '\uA92F'); | |
initialMap.put("Khmer", '\u1780'); | |
finalMap.put("Khmer", '\u17FF'); | |
initialMap.put("Khmer Symbols", '\u19E0'); | |
finalMap.put("Khmer Symbols", '\u19FF'); | |
initialMap.put("Lao", '\u0E80'); | |
finalMap.put("Lao", '\u0EFF'); | |
initialMap.put("Myanmar", '\u1000'); | |
finalMap.put("Myanmar", '\u109F'); | |
initialMap.put("Myanmar Extended-A", '\uAA60'); | |
finalMap.put("Myanmar Extended-A", '\uAA7F'); | |
initialMap.put("Myanmar Extended-B", '\uA9E0'); | |
finalMap.put("Myanmar Extended-B", '\uA9FF'); | |
initialMap.put("New Tai Lue", '\u1980'); | |
finalMap.put("New Tai Lue", '\u19DF'); | |
// initialMap.put("Pahawh Hmong",'\u16B00'); | |
// finalMap.put("Pahawh Hmong",'\u16B8F'); | |
// initialMap.put("Pau Cin Hau",'\u11AC0'); | |
// finalMap.put("Pau Cin Hau",'\u11AFF'); | |
initialMap.put("Tai Le", '\u1950'); | |
finalMap.put("Tai Le", '\u197F'); | |
initialMap.put("Tai Tham", '\u1A20'); | |
finalMap.put("Tai Tham", '\u1AAF'); | |
initialMap.put("Tai Viet", '\uAA80'); | |
finalMap.put("Tai Viet", '\uAADF'); | |
initialMap.put("Thai", '\u0E00'); | |
finalMap.put("Thai", '\u0E7F'); | |
initialMap.put("Balinese", '\u1B00'); | |
finalMap.put("Balinese", '\u1B7F'); | |
initialMap.put("Batak", '\u1BC0'); | |
finalMap.put("Batak", '\u1BFF'); | |
initialMap.put("Buginese", '\u1A00'); | |
finalMap.put("Buginese", '\u1A1F'); | |
initialMap.put("Buhid", '\u1740'); | |
finalMap.put("Buhid", '\u175F'); | |
initialMap.put("Hanunoo", '\u1720'); | |
finalMap.put("Hanunoo", '\u173F'); | |
initialMap.put("Javanese", '\uA980'); | |
finalMap.put("Javanese", '\uA9DF'); | |
initialMap.put("Rejang", '\uA930'); | |
finalMap.put("Rejang", '\uA95F'); | |
initialMap.put("Sundanese", '\uA930'); | |
finalMap.put("Sundanese", '\uA95F'); | |
initialMap.put("Sundanese Supplement", '\u1CC0'); | |
finalMap.put("Sundanese Supplement", '\u1CCF'); | |
initialMap.put("Tagalog", '\u1700'); | |
finalMap.put("Tagalog", '\u171F'); | |
initialMap.put("Tagbanwa", '\u1760'); | |
finalMap.put("Tagbanwa", '\u177F'); | |
initialMap.put("Bopomofo", '\u3100'); | |
finalMap.put("Bopomofo", '\u312F'); | |
initialMap.put("Bopomofo Extended", '\u31A0'); | |
finalMap.put("Bopomofo Extended", '\u31BF'); | |
initialMap.put("CJK Unified Ideographs (Han)", '\u4E00'); | |
finalMap.put("CJK Unified Ideographs (Han)", '\u9FFF'); | |
initialMap.put("CJK Extension-A", '\u3400'); | |
finalMap.put("CJK Extension-A", '\u4DBF'); | |
// initialMap.put("CJK Extension B",'\u20000'); | |
// finalMap.put("CJK Extension B",'\u2A6DF'); | |
// initialMap.put("CJK Extension C",'\u2A700'); | |
// finalMap.put("CJK Extension C",'\u2B73F'); | |
// initialMap.put("CJK Extension D",'\u2B740'); | |
// finalMap.put("CJK Extension D",'\u2B81F'); | |
// initialMap.put("CJK Extension E",'\u2B820'); | |
// finalMap.put("CJK Extension E",'\u2CEAF'); | |
initialMap.put("CJK Compatibility Ideographs", '\uF900'); | |
finalMap.put("CJK Compatibility Ideographs", '\uFAFF'); | |
// initialMap.put("CJK Compatibility Ideographs Supplement",'\u2F800'); | |
// finalMap.put("CJK Compatibility Ideographs Supplement",'\u2FA1F'); | |
initialMap.put("CJK Radicals / KangXi Radicals", '\u2F00'); | |
finalMap.put("CJK Radicals / KangXi Radicals", '\u2FDF'); | |
initialMap.put("CJK Radicals Supplement", '\u2E80'); | |
finalMap.put("CJK Radicals Supplement", '\u2EFF'); | |
initialMap.put("CJK Strokes", '\u31C0'); | |
finalMap.put("CJK Strokes", '\u31EF'); | |
initialMap.put("Ideographic Description Characters", '\u2FF0'); | |
finalMap.put("Ideographic Description Characters", '\u2FFF'); | |
initialMap.put("Hangul Jamo", '\u1100'); | |
finalMap.put("Hangul Jamo", '\u11FF'); | |
initialMap.put("Hangul Jamo Extended-A", '\uA960'); | |
finalMap.put("Hangul Jamo Extended-A", '\uA97F'); | |
initialMap.put("Hangul Jamo Extended-B", '\uD7B0'); | |
finalMap.put("Hangul Jamo Extended-B", '\uD7FF'); | |
initialMap.put("Hangul Compatibility Jamo", '\u3130'); | |
finalMap.put("Hangul Compatibility Jamo", '\u318F'); | |
initialMap.put("Halfwidth Jamo", '\uFFA0'); | |
finalMap.put("Halfwidth Jamo", '\uFFDC'); | |
initialMap.put("Hangul Syllables", '\uAC00'); | |
finalMap.put("Hangul Syllables", '\uD7AF'); | |
initialMap.put("Hiragana", '\u3040'); | |
finalMap.put("Hiragana", '\u309F'); | |
initialMap.put("Katakana", '\u30A0'); | |
finalMap.put("Katakana", '\u30FF'); | |
initialMap.put("Katakana Phonetic Extensions", '\u31F0'); | |
finalMap.put("Katakana Phonetic Extensions", '\u31FF'); | |
// initialMap.put("Kana Supplement",'\u1B000'); | |
// finalMap.put("Kana Supplement",'\u1B0FF'); | |
initialMap.put("Halfwidth Katakana", '\uFF65'); | |
finalMap.put("Halfwidth Katakana", '\uFF9F'); | |
initialMap.put("Kanbun", '\u3190'); | |
finalMap.put("Kanbun", '\u319F'); | |
initialMap.put("Lisu", '\uA4D0'); | |
finalMap.put("Lisu", '\uA4FF'); | |
// initialMap.put("Miao",'\u16F00'); | |
// finalMap.put("Miao",'\u16F9F'); | |
initialMap.put("Yi Syllables", '\uA000'); | |
finalMap.put("Yi Syllables", '\uA48F'); | |
initialMap.put("Yi Radicals", '\uA490'); | |
finalMap.put("Yi Radicals", '\uA4CF'); | |
initialMap.put("Cherokee", '\u13A0'); | |
finalMap.put("Cherokee", '\u13FF'); | |
initialMap.put("Cherokee Supplement", '\uAB70'); | |
finalMap.put("Cherokee Supplement", '\uABBF'); | |
// initialMap.put("Deseret",'\u10400'); | |
// finalMap.put("Deseret",'\u1044F'); | |
initialMap.put("Unified Canadian Aboriginal Syllabics", '\u1400'); | |
finalMap.put("Unified Canadian Aboriginal Syllabics", '\u167F'); | |
initialMap.put("UCAS Extended", '\u18B0'); | |
finalMap.put("UCAS Extended", '\u18FF'); | |
initialMap.put("Alphabetic Presentation Forms", '\uFB00'); | |
finalMap.put("Alphabetic Presentation Forms", '\uFB4F'); | |
initialMap.put("ASCII Characters", '\u0000'); | |
finalMap.put("ASCII Characters", '\u007F'); | |
initialMap.put("Halfwidth and Fullwidth Forms", '\uFF00'); | |
finalMap.put("Halfwidth and Fullwidth Forms", '\uFFEF'); | |
Character ab = initialMap.get(script.trim()); | |
Character b = finalMap.get(script.trim()); | |
List<Character> reqCharList = new ArrayList<Character>(); | |
if (ab != null) { | |
while (!ab.equals(b)) { | |
reqCharList.add(ab); | |
ab++; | |
} | |
} | |
return reqCharList; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment