Java >> Java tutorial >  >> Java

Sådan konverteres landekode til emoji-flag i Java

Da Unicode-tegn understøttes af alle større browsere, bør du overveje at bruge emojis i stedet for billeder til at vise landes flag. Her er et lille kodestykke, der konverterer landekoder (ISO 3166-1 alpha-2) til tilsvarende emoji-flag (Unicode regionale indikatorsymboler) i Java:

public String countryCodeToEmoji(String code) {

    // offset between uppercase ascii and regional indicator symbols
    int OFFSET = 127397;

    // validate code
    if(code == null || code.length() != 2) {
        return "";
    }

    //fix for uk -> gb
    if (code.equalsIgnoreCase("uk")) {
        code = "gb";
    }

    // convert code to uppercase
    code = code.toUpperCase();

    StringBuilder emojiStr = new StringBuilder();

    //loop all characters
    for (int i = 0; i < code.length(); i++) {
        emojiStr.appendCodePoint(code.charAt(i) + OFFSET);
    }

    // return emoji
    return emojiStr.toString();
}

Lad os bruge ovenstående funktion til at få emoji-flag for USA, Storbritannien, Frankrig og Tyskland:

System.out.println(countryCodeToEmoji("US")); // 🇺🇸
System.out.println(countryCodeToEmoji("UK")); // 🇬🇧
System.out.println(countryCodeToEmoji("FR")); // 🇫🇷
System.out.println(countryCodeToEmoji("DE")); // 🇩🇪

Java tag