Android工具类系列-获取字符串首字母,并对字符串列表进行排序。

工具类HanziToPinyin.class代码量有点多,放到最后。java

/**
 * 根据字符串获取当前首字母
 * @param name
 * @return
 */
static String getLetter(String name) {
    String DefaultLetter = "#";
    if (TextUtils.isEmpty(name)) {
        return DefaultLetter;
    }
    char char0 = name.toLowerCase().charAt(0);
    if (Character.isDigit(char0)) {
        return DefaultLetter;
    }
    ArrayList<HanziToPinyin.Token> l = HanziToPinyin.getInstance().get(name.substring(0, 1));
    if (l != null && l.size() > 0 && l.get(0).target.length() > 0) {
        HanziToPinyin.Token token = l.get(0);
        // toLowerCase()返回小写, toUpperCase()返回大写
        String letter = token.target.substring(0, 1).toLowerCase();
        char c = letter.charAt(0);
        // 这里的 'a' 和 'z' 要和letter的大小写保持一直。
        if (c < 'a' || c > 'z') {
            return DefaultLetter;
        }
        return letter;
    }
    return DefaultLetter;
}

若是获取失败的话,就返回默认值“#”若是letter的大小写,和 if 里面所比较的大小写不一致的话,也是会直接返回“#”。 
在使用的时候,直接调用getLetter 传入你须要获取首字母的字符串就能够了。android

假数据来测试:git

package com.example.myapplication;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by asus on 2017/12/11.
 */

public class HzPyDataModel {

    public static List<User> getList() {
        List<User> list = new ArrayList<User>();
//        刘一 陈二 张三 李四 王五 赵六 孙七 周八 吴九 郑十
        User user = new User();
        user.setNick("刘一");
        user.setWholePy("liuyi");

        User user1 = new User();
        user1.setNick("陈二");
        user1.setWholePy("chener");

        User user2 = new User();
        user2.setNick("张三");
        user2.setWholePy("zhangsan");

        User user3 = new User();
        user3.setNick("李四");
        user3.setWholePy("lisi");

        User user4 = new User();
        user4.setNick("王五");
        user4.setWholePy("wangwu");

        User user5 = new User();
        user5.setNick("赵六");
        user5.setWholePy("zhaoliu");

        User user6 = new User();
        user6.setNick("孙七");
        user6.setWholePy("sunqi");

        User user7 = new User();
        user7.setNick("周八");
        user7.setWholePy("zhouba");

        User user8 = new User();
        user8.setNick("吴九");
        user8.setWholePy("wujiu");

        User user9 = new User();
        user9.setNick("郑十");
        user9.setWholePy("zhengshi");

        list.add(user);
        list.add(user1);
        list.add(user2);
        list.add(user3);
        list.add(user4);
        list.add(user5);
        list.add(user6);
        list.add(user7);
        list.add(user8);
        list.add(user9);
        return list;
    }

    public static class User {
        private String initial;//用户首字母
        private String nick;// 用户昵称
        private String wholePy;// 用户全拼

        public String getInitial() {
            return initial;
        }

        public void setInitial(String initial) {
            this.initial = initial;
        }

        public String getNick() {
            return nick;
        }

        public void setNick(String nick) {
            this.nick = nick;
        }

        public String getWholePy() {
            return wholePy;
        }

        public void setWholePy(String wholePy) {
            this.wholePy = wholePy;
        }
    }
}

测试方法为:app

private List<HzPyDataModel.User> contactList = new ArrayList<HzPyDataModel.User>();;
private  String TAG = "tag";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    contactList = HzPyDataModel.getList();
    for (HzPyDataModel.User user : contactList) {
        user.setInitial(getLetter(user.getNick()));
        Log.i(TAG, user.getNick() + ": " + user.getInitial());
        Toast.makeText(this, user.getNick()+"----------"+user.getInitial(), Toast.LENGTH_SHORT).show();
    }
}

上面已经对每个User都设置了其对应的首字母,而后咱们来根据首字母进行排序:ide

//按字母排序
public void sort() {

    Collections.sort(contactList, new Comparator<HzPyDataModel.User>() {
        @Override
        public int compare(HzPyDataModel.User lhs, HzPyDataModel.User rhs) {
            if (lhs.getInitial().equals(rhs.getInitial())) {
                return lhs.getNick().compareTo(rhs.getNick());
            } else {
                if ("#".equals(lhs.getInitial())) {
                    return 1;
                } else if ("#".equals(rhs.getInitial())) {
                    return -1;
                }
                return lhs.getInitial().compareTo(rhs.getInitial());
            }
        }
    });
}

继续在上面的for循环下面调用排序方法,工具

sort();
for (HzPyDataModel.User user : contactList) {
    Log.i(TAG, user.getNick() + ": " + user.getWholePy());
}

工具类:HanziToPinyin.class测试

package com.example.myapplication;

import android.text.TextUtils;

import java.text.Collator;
import java.util.ArrayList;
import java.util.Locale;

/**
 * Created by asus on 2017/12/11.
 */

public class HanziToPinyin {
    private static final String TAG = "HanziToPinyin";
    private static final boolean DEBUG = false;
    public static final char[] UNIHANS = new char[]{'阿', '哎', '安', '肮', '凹', '八', '挀', '扳', '邦', '勹', '陂', '奔', '伻', '屄', '边', '灬', '憋', '汃', '冫', '癶', '峬', '嚓', '偲', '参', '仓', '撡', '冊', '嵾', '曽', '曾', '層', '叉', '芆', '辿', '伥', '抄', '车', '抻', '沈', '沉', '阷', '吃', '充', '抽', '出', '欻', '揣', '巛', '刅', '吹', '旾', '逴', '呲', '匆', '凑', '粗', '汆', '崔', '邨', '搓', '咑', '呆', '丹', '当', '刀', '嘚', '扥', '灯', '氐', '嗲', '甸', '刁', '爹', '丁', '丟', '东', '吺', '厾', '耑', '襨', '吨', '多', '妸', '诶', '奀', '鞥', '儿', '发', '帆', '匚', '飞', '分', '丰', '覅', '仏', '紑', '伕', '旮', '侅', '甘', '冈', '皋', '戈', '给', '根', '刯', '工', '勾', '估', '瓜', '乖', '关', '光', '归', '丨', '呙', '哈', '咍', '佄', '夯', '茠', '诃', '黒', '拫', '亨', '噷', '叿', '齁', '乯', '花', '怀', '犿', '巟', '灰', '昏', '吙', '丌', '加', '戋', '江', '艽', '阶', '巾', '坕', '冂', '丩', '凥', '姢', '噘', '军', '咔', '开', '刊', '忼', '尻', '匼', '肎', '劥', '空', '抠', '扝', '夸', '蒯', '宽', '匡', '亏', '坤', '扩', '垃', '来', '兰', '啷', '捞', '肋', '勒', '崚', '刕', '俩', '奁', '良', '撩', '列', '拎', '刢', '溜', '囖', '龙', '瞜', '噜', '娈', '畧', '抡', '罗', '呣', '妈', '埋', '嫚', '牤', '猫', '么', '呅', '门', '甿', '咪', '宀', '喵', '乜', '民', '名', '谬', '摸', '哞', '毪', '嗯', '拏', '腉', '囡', '囔', '孬', '疒', '娞', '恁', '能', '妮', '拈', '嬢', '鸟', '捏', '囜', '宁', '妞', '农', '羺', '奴', '奻', '疟', '黁', '郍', '喔', '讴', '妑', '拍', '眅', '乓', '抛', '呸', '喷', '匉', '丕', '囨', '剽', '氕', '姘', '乒', '钋', '剖', '仆', '七', '掐', '千', '呛', '悄', '癿', '亲', '狅', '芎', '丘', '区', '峑', '缺', '夋', '呥', '穣', '娆', '惹', '人', '扔', '日', '茸', '厹', '邚', '挼', '堧', '婑', '瞤', '捼', '仨', '毢', '三', '桒', '掻', '閪', '森', '僧', '杀', '筛', '山', '伤', '弰', '奢', '申', '莘', '敒', '升', '尸', '収', '书', '刷', '衰', '闩', '双', '谁', '吮', '说', '厶', '忪', '捜', '苏', '狻', '夊', '孙', '唆', '他', '囼', '坍', '汤', '夲', '忑', '熥', '剔', '天', '旫', '帖', '厅', '囲', '偷', '凸', '湍', '推', '吞', '乇', '穵', '歪', '弯', '尣', '危', '昷', '翁', '挝', '乌', '夕', '虲', '仚', '乡', '灱', '些', '心', '星', '凶', '休', '吁', '吅', '削', '坃', '丫', '恹', '央', '幺', '倻', '一', '囙', '应', '哟', '佣', '优', '扜', '囦', '曰', '晕', '筠', '筼', '帀', '災', '兂', '匨', '傮', '则', '贼', '怎', '増', '扎', '捚', '沾', '张', '长', '長', '佋', '蜇', '贞', '争', '之', '峙', '庢', '中', '州', '朱', '抓', '拽', '专', '妆', '隹', '宒', '卓', '乲', '宗', '邹', '租', '钻', '厜', '尊', '昨', '兙', '鿃', '鿄'};
    public static final byte[][] PINYINS = new byte[][]{{(byte)65, (byte)0, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)65, (byte)73, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)65, (byte)78, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)65, (byte)78, (byte)71, (byte)0, (byte)0, (byte)0}, {(byte)65, (byte)79, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)66, (byte)65, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)66, (byte)65, (byte)73, (byte)0, (byte)0, (byte)0}, {(byte)66, (byte)65, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)66, (byte)65, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)66, (byte)65, (byte)79, (byte)0, (byte)0, (byte)0}, {(byte)66, (byte)69, (byte)73, (byte)0, (byte)0, (byte)0}, {(byte)66, (byte)69, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)66, (byte)69, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)66, (byte)73, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)66, (byte)73, (byte)65, (byte)78, (byte)0, (byte)0}, {(byte)66, (byte)73, (byte)65, (byte)79, (byte)0, (byte)0}, {(byte)66, (byte)73, (byte)69, (byte)0, (byte)0, (byte)0}, {(byte)66, (byte)73, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)66, (byte)73, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)66, (byte)79, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)66, (byte)85, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)67, (byte)65, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)67, (byte)65, (byte)73, (byte)0, (byte)0, (byte)0}, {(byte)67, (byte)65, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)67, (byte)65, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)67, (byte)65, (byte)79, (byte)0, (byte)0, (byte)0}, {(byte)67, (byte)69, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)67, (byte)69, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)67, (byte)69, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)90, (byte)69, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)67, (byte)69, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)67, (byte)72, (byte)65, (byte)0, (byte)0, (byte)0}, {(byte)67, (byte)72, (byte)65, (byte)73, (byte)0, (byte)0}, {(byte)67, (byte)72, (byte)65, (byte)78, (byte)0, (byte)0}, {(byte)67, (byte)72, (byte)65, (byte)78, (byte)71, (byte)0}, {(byte)67, (byte)72, (byte)65, (byte)79, (byte)0, (byte)0}, {(byte)67, (byte)72, (byte)69, (byte)0, (byte)0, (byte)0}, {(byte)67, (byte)72, (byte)69, (byte)78, (byte)0, (byte)0}, {(byte)83, (byte)72, (byte)69, (byte)78, (byte)0, (byte)0}, {(byte)67, (byte)72, (byte)69, (byte)78, (byte)0, (byte)0}, {(byte)67, (byte)72, (byte)69, (byte)78, (byte)71, (byte)0}, {(byte)67, (byte)72, (byte)73, (byte)0, (byte)0, (byte)0}, {(byte)67, (byte)72, (byte)79, (byte)78, (byte)71, (byte)0}, {(byte)67, (byte)72, (byte)79, (byte)85, (byte)0, (byte)0}, {(byte)67, (byte)72, (byte)85, (byte)0, (byte)0, (byte)0}, {(byte)67, (byte)72, (byte)85, (byte)65, (byte)0, (byte)0}, {(byte)67, (byte)72, (byte)85, (byte)65, (byte)73, (byte)0}, {(byte)67, (byte)72, (byte)85, (byte)65, (byte)78, (byte)0}, {(byte)67, (byte)72, (byte)85, (byte)65, (byte)78, (byte)71}, {(byte)67, (byte)72, (byte)85, (byte)73, (byte)0, (byte)0}, {(byte)67, (byte)72, (byte)85, (byte)78, (byte)0, (byte)0}, {(byte)67, (byte)72, (byte)85, (byte)79, (byte)0, (byte)0}, {(byte)67, (byte)73, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)67, (byte)79, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)67, (byte)79, (byte)85, (byte)0, (byte)0, (byte)0}, {(byte)67, (byte)85, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)67, (byte)85, (byte)65, (byte)78, (byte)0, (byte)0}, {(byte)67, (byte)85, (byte)73, (byte)0, (byte)0, (byte)0}, {(byte)67, (byte)85, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)67, (byte)85, (byte)79, (byte)0, (byte)0, (byte)0}, {(byte)68, (byte)65, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)68, (byte)65, (byte)73, (byte)0, (byte)0, (byte)0}, {(byte)68, (byte)65, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)68, (byte)65, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)68, (byte)65, (byte)79, (byte)0, (byte)0, (byte)0}, {(byte)68, (byte)69, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)68, (byte)69, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)68, (byte)69, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)68, (byte)73, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)68, (byte)73, (byte)65, (byte)0, (byte)0, (byte)0}, {(byte)68, (byte)73, (byte)65, (byte)78, (byte)0, (byte)0}, {(byte)68, (byte)73, (byte)65, (byte)79, (byte)0, (byte)0}, {(byte)68, (byte)73, (byte)69, (byte)0, (byte)0, (byte)0}, {(byte)68, (byte)73, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)68, (byte)73, (byte)85, (byte)0, (byte)0, (byte)0}, {(byte)68, (byte)79, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)68, (byte)79, (byte)85, (byte)0, (byte)0, (byte)0}, {(byte)68, (byte)85, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)68, (byte)85, (byte)65, (byte)78, (byte)0, (byte)0}, {(byte)68, (byte)85, (byte)73, (byte)0, (byte)0, (byte)0}, {(byte)68, (byte)85, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)68, (byte)85, (byte)79, (byte)0, (byte)0, (byte)0}, {(byte)69, (byte)0, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)69, (byte)73, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)69, (byte)78, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)69, (byte)78, (byte)71, (byte)0, (byte)0, (byte)0}, {(byte)69, (byte)82, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)70, (byte)65, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)70, (byte)65, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)70, (byte)65, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)70, (byte)69, (byte)73, (byte)0, (byte)0, (byte)0}, {(byte)70, (byte)69, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)70, (byte)69, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)70, (byte)73, (byte)65, (byte)79, (byte)0, (byte)0}, {(byte)70, (byte)79, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)70, (byte)79, (byte)85, (byte)0, (byte)0, (byte)0}, {(byte)70, (byte)85, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)71, (byte)65, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)71, (byte)65, (byte)73, (byte)0, (byte)0, (byte)0}, {(byte)71, (byte)65, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)71, (byte)65, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)71, (byte)65, (byte)79, (byte)0, (byte)0, (byte)0}, {(byte)71, (byte)69, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)71, (byte)69, (byte)73, (byte)0, (byte)0, (byte)0}, {(byte)71, (byte)69, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)71, (byte)69, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)71, (byte)79, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)71, (byte)79, (byte)85, (byte)0, (byte)0, (byte)0}, {(byte)71, (byte)85, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)71, (byte)85, (byte)65, (byte)0, (byte)0, (byte)0}, {(byte)71, (byte)85, (byte)65, (byte)73, (byte)0, (byte)0}, {(byte)71, (byte)85, (byte)65, (byte)78, (byte)0, (byte)0}, {(byte)71, (byte)85, (byte)65, (byte)78, (byte)71, (byte)0}, {(byte)71, (byte)85, (byte)73, (byte)0, (byte)0, (byte)0}, {(byte)71, (byte)85, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)71, (byte)85, (byte)79, (byte)0, (byte)0, (byte)0}, {(byte)72, (byte)65, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)72, (byte)65, (byte)73, (byte)0, (byte)0, (byte)0}, {(byte)72, (byte)65, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)72, (byte)65, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)72, (byte)65, (byte)79, (byte)0, (byte)0, (byte)0}, {(byte)72, (byte)69, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)72, (byte)69, (byte)73, (byte)0, (byte)0, (byte)0}, {(byte)72, (byte)69, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)72, (byte)69, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)72, (byte)77, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)72, (byte)79, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)72, (byte)79, (byte)85, (byte)0, (byte)0, (byte)0}, {(byte)72, (byte)85, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)72, (byte)85, (byte)65, (byte)0, (byte)0, (byte)0}, {(byte)72, (byte)85, (byte)65, (byte)73, (byte)0, (byte)0}, {(byte)72, (byte)85, (byte)65, (byte)78, (byte)0, (byte)0}, {(byte)72, (byte)85, (byte)65, (byte)78, (byte)71, (byte)0}, {(byte)72, (byte)85, (byte)73, (byte)0, (byte)0, (byte)0}, {(byte)72, (byte)85, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)72, (byte)85, (byte)79, (byte)0, (byte)0, (byte)0}, {(byte)74, (byte)73, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)74, (byte)73, (byte)65, (byte)0, (byte)0, (byte)0}, {(byte)74, (byte)73, (byte)65, (byte)78, (byte)0, (byte)0}, {(byte)74, (byte)73, (byte)65, (byte)78, (byte)71, (byte)0}, {(byte)74, (byte)73, (byte)65, (byte)79, (byte)0, (byte)0}, {(byte)74, (byte)73, (byte)69, (byte)0, (byte)0, (byte)0}, {(byte)74, (byte)73, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)74, (byte)73, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)74, (byte)73, (byte)79, (byte)78, (byte)71, (byte)0}, {(byte)74, (byte)73, (byte)85, (byte)0, (byte)0, (byte)0}, {(byte)74, (byte)85, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)74, (byte)85, (byte)65, (byte)78, (byte)0, (byte)0}, {(byte)74, (byte)85, (byte)69, (byte)0, (byte)0, (byte)0}, {(byte)74, (byte)85, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)75, (byte)65, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)75, (byte)65, (byte)73, (byte)0, (byte)0, (byte)0}, {(byte)75, (byte)65, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)75, (byte)65, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)75, (byte)65, (byte)79, (byte)0, (byte)0, (byte)0}, {(byte)75, (byte)69, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)75, (byte)69, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)75, (byte)69, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)75, (byte)79, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)75, (byte)79, (byte)85, (byte)0, (byte)0, (byte)0}, {(byte)75, (byte)85, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)75, (byte)85, (byte)65, (byte)0, (byte)0, (byte)0}, {(byte)75, (byte)85, (byte)65, (byte)73, (byte)0, (byte)0}, {(byte)75, (byte)85, (byte)65, (byte)78, (byte)0, (byte)0}, {(byte)75, (byte)85, (byte)65, (byte)78, (byte)71, (byte)0}, {(byte)75, (byte)85, (byte)73, (byte)0, (byte)0, (byte)0}, {(byte)75, (byte)85, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)75, (byte)85, (byte)79, (byte)0, (byte)0, (byte)0}, {(byte)76, (byte)65, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)76, (byte)65, (byte)73, (byte)0, (byte)0, (byte)0}, {(byte)76, (byte)65, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)76, (byte)65, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)76, (byte)65, (byte)79, (byte)0, (byte)0, (byte)0}, {(byte)76, (byte)69, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)76, (byte)69, (byte)73, (byte)0, (byte)0, (byte)0}, {(byte)76, (byte)69, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)76, (byte)73, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)76, (byte)73, (byte)65, (byte)0, (byte)0, (byte)0}, {(byte)76, (byte)73, (byte)65, (byte)78, (byte)0, (byte)0}, {(byte)76, (byte)73, (byte)65, (byte)78, (byte)71, (byte)0}, {(byte)76, (byte)73, (byte)65, (byte)79, (byte)0, (byte)0}, {(byte)76, (byte)73, (byte)69, (byte)0, (byte)0, (byte)0}, {(byte)76, (byte)73, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)76, (byte)73, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)76, (byte)73, (byte)85, (byte)0, (byte)0, (byte)0}, {(byte)76, (byte)79, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)76, (byte)79, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)76, (byte)79, (byte)85, (byte)0, (byte)0, (byte)0}, {(byte)76, (byte)85, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)76, (byte)85, (byte)65, (byte)78, (byte)0, (byte)0}, {(byte)76, (byte)85, (byte)69, (byte)0, (byte)0, (byte)0}, {(byte)76, (byte)85, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)76, (byte)85, (byte)79, (byte)0, (byte)0, (byte)0}, {(byte)77, (byte)0, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)77, (byte)65, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)77, (byte)65, (byte)73, (byte)0, (byte)0, (byte)0}, {(byte)77, (byte)65, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)77, (byte)65, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)77, (byte)65, (byte)79, (byte)0, (byte)0, (byte)0}, {(byte)77, (byte)69, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)77, (byte)69, (byte)73, (byte)0, (byte)0, (byte)0}, {(byte)77, (byte)69, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)77, (byte)69, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)77, (byte)73, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)77, (byte)73, (byte)65, (byte)78, (byte)0, (byte)0}, {(byte)77, (byte)73, (byte)65, (byte)79, (byte)0, (byte)0}, {(byte)77, (byte)73, (byte)69, (byte)0, (byte)0, (byte)0}, {(byte)77, (byte)73, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)77, (byte)73, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)77, (byte)73, (byte)85, (byte)0, (byte)0, (byte)0}, {(byte)77, (byte)79, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)77, (byte)79, (byte)85, (byte)0, (byte)0, (byte)0}, {(byte)77, (byte)85, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)78, (byte)0, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)78, (byte)65, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)78, (byte)65, (byte)73, (byte)0, (byte)0, (byte)0}, {(byte)78, (byte)65, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)78, (byte)65, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)78, (byte)65, (byte)79, (byte)0, (byte)0, (byte)0}, {(byte)78, (byte)69, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)78, (byte)69, (byte)73, (byte)0, (byte)0, (byte)0}, {(byte)78, (byte)69, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)78, (byte)69, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)78, (byte)73, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)78, (byte)73, (byte)65, (byte)78, (byte)0, (byte)0}, {(byte)78, (byte)73, (byte)65, (byte)78, (byte)71, (byte)0}, {(byte)78, (byte)73, (byte)65, (byte)79, (byte)0, (byte)0}, {(byte)78, (byte)73, (byte)69, (byte)0, (byte)0, (byte)0}, {(byte)78, (byte)73, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)78, (byte)73, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)78, (byte)73, (byte)85, (byte)0, (byte)0, (byte)0}, {(byte)78, (byte)79, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)78, (byte)79, (byte)85, (byte)0, (byte)0, (byte)0}, {(byte)78, (byte)85, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)78, (byte)85, (byte)65, (byte)78, (byte)0, (byte)0}, {(byte)78, (byte)85, (byte)69, (byte)0, (byte)0, (byte)0}, {(byte)78, (byte)85, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)78, (byte)85, (byte)79, (byte)0, (byte)0, (byte)0}, {(byte)79, (byte)0, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)79, (byte)85, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)80, (byte)65, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)80, (byte)65, (byte)73, (byte)0, (byte)0, (byte)0}, {(byte)80, (byte)65, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)80, (byte)65, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)80, (byte)65, (byte)79, (byte)0, (byte)0, (byte)0}, {(byte)80, (byte)69, (byte)73, (byte)0, (byte)0, (byte)0}, {(byte)80, (byte)69, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)80, (byte)69, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)80, (byte)73, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)80, (byte)73, (byte)65, (byte)78, (byte)0, (byte)0}, {(byte)80, (byte)73, (byte)65, (byte)79, (byte)0, (byte)0}, {(byte)80, (byte)73, (byte)69, (byte)0, (byte)0, (byte)0}, {(byte)80, (byte)73, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)80, (byte)73, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)80, (byte)79, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)80, (byte)79, (byte)85, (byte)0, (byte)0, (byte)0}, {(byte)80, (byte)85, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)81, (byte)73, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)81, (byte)73, (byte)65, (byte)0, (byte)0, (byte)0}, {(byte)81, (byte)73, (byte)65, (byte)78, (byte)0, (byte)0}, {(byte)81, (byte)73, (byte)65, (byte)78, (byte)71, (byte)0}, {(byte)81, (byte)73, (byte)65, (byte)79, (byte)0, (byte)0}, {(byte)81, (byte)73, (byte)69, (byte)0, (byte)0, (byte)0}, {(byte)81, (byte)73, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)81, (byte)73, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)81, (byte)73, (byte)79, (byte)78, (byte)71, (byte)0}, {(byte)81, (byte)73, (byte)85, (byte)0, (byte)0, (byte)0}, {(byte)81, (byte)85, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)81, (byte)85, (byte)65, (byte)78, (byte)0, (byte)0}, {(byte)81, (byte)85, (byte)69, (byte)0, (byte)0, (byte)0}, {(byte)81, (byte)85, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)82, (byte)65, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)82, (byte)65, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)82, (byte)65, (byte)79, (byte)0, (byte)0, (byte)0}, {(byte)82, (byte)69, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)82, (byte)69, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)82, (byte)69, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)82, (byte)73, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)82, (byte)79, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)82, (byte)79, (byte)85, (byte)0, (byte)0, (byte)0}, {(byte)82, (byte)85, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)82, (byte)85, (byte)65, (byte)0, (byte)0, (byte)0}, {(byte)82, (byte)85, (byte)65, (byte)78, (byte)0, (byte)0}, {(byte)82, (byte)85, (byte)73, (byte)0, (byte)0, (byte)0}, {(byte)82, (byte)85, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)82, (byte)85, (byte)79, (byte)0, (byte)0, (byte)0}, {(byte)83, (byte)65, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)83, (byte)65, (byte)73, (byte)0, (byte)0, (byte)0}, {(byte)83, (byte)65, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)83, (byte)65, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)83, (byte)65, (byte)79, (byte)0, (byte)0, (byte)0}, {(byte)83, (byte)69, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)83, (byte)69, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)83, (byte)69, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)83, (byte)72, (byte)65, (byte)0, (byte)0, (byte)0}, {(byte)83, (byte)72, (byte)65, (byte)73, (byte)0, (byte)0}, {(byte)83, (byte)72, (byte)65, (byte)78, (byte)0, (byte)0}, {(byte)83, (byte)72, (byte)65, (byte)78, (byte)71, (byte)0}, {(byte)83, (byte)72, (byte)65, (byte)79, (byte)0, (byte)0}, {(byte)83, (byte)72, (byte)69, (byte)0, (byte)0, (byte)0}, {(byte)83, (byte)72, (byte)69, (byte)78, (byte)0, (byte)0}, {(byte)88, (byte)73, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)83, (byte)72, (byte)69, (byte)78, (byte)0, (byte)0}, {(byte)83, (byte)72, (byte)69, (byte)78, (byte)71, (byte)0}, {(byte)83, (byte)72, (byte)73, (byte)0, (byte)0, (byte)0}, {(byte)83, (byte)72, (byte)79, (byte)85, (byte)0, (byte)0}, {(byte)83, (byte)72, (byte)85, (byte)0, (byte)0, (byte)0}, {(byte)83, (byte)72, (byte)85, (byte)65, (byte)0, (byte)0}, {(byte)83, (byte)72, (byte)85, (byte)65, (byte)73, (byte)0}, {(byte)83, (byte)72, (byte)85, (byte)65, (byte)78, (byte)0}, {(byte)83, (byte)72, (byte)85, (byte)65, (byte)78, (byte)71}, {(byte)83, (byte)72, (byte)85, (byte)73, (byte)0, (byte)0}, {(byte)83, (byte)72, (byte)85, (byte)78, (byte)0, (byte)0}, {(byte)83, (byte)72, (byte)85, (byte)79, (byte)0, (byte)0}, {(byte)83, (byte)73, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)83, (byte)79, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)83, (byte)79, (byte)85, (byte)0, (byte)0, (byte)0}, {(byte)83, (byte)85, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)83, (byte)85, (byte)65, (byte)78, (byte)0, (byte)0}, {(byte)83, (byte)85, (byte)73, (byte)0, (byte)0, (byte)0}, {(byte)83, (byte)85, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)83, (byte)85, (byte)79, (byte)0, (byte)0, (byte)0}, {(byte)84, (byte)65, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)84, (byte)65, (byte)73, (byte)0, (byte)0, (byte)0}, {(byte)84, (byte)65, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)84, (byte)65, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)84, (byte)65, (byte)79, (byte)0, (byte)0, (byte)0}, {(byte)84, (byte)69, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)84, (byte)69, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)84, (byte)73, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)84, (byte)73, (byte)65, (byte)78, (byte)0, (byte)0}, {(byte)84, (byte)73, (byte)65, (byte)79, (byte)0, (byte)0}, {(byte)84, (byte)73, (byte)69, (byte)0, (byte)0, (byte)0}, {(byte)84, (byte)73, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)84, (byte)79, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)84, (byte)79, (byte)85, (byte)0, (byte)0, (byte)0}, {(byte)84, (byte)85, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)84, (byte)85, (byte)65, (byte)78, (byte)0, (byte)0}, {(byte)84, (byte)85, (byte)73, (byte)0, (byte)0, (byte)0}, {(byte)84, (byte)85, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)84, (byte)85, (byte)79, (byte)0, (byte)0, (byte)0}, {(byte)87, (byte)65, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)87, (byte)65, (byte)73, (byte)0, (byte)0, (byte)0}, {(byte)87, (byte)65, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)87, (byte)65, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)87, (byte)69, (byte)73, (byte)0, (byte)0, (byte)0}, {(byte)87, (byte)69, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)87, (byte)69, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)87, (byte)79, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)87, (byte)85, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)88, (byte)73, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)88, (byte)73, (byte)65, (byte)0, (byte)0, (byte)0}, {(byte)88, (byte)73, (byte)65, (byte)78, (byte)0, (byte)0}, {(byte)88, (byte)73, (byte)65, (byte)78, (byte)71, (byte)0}, {(byte)88, (byte)73, (byte)65, (byte)79, (byte)0, (byte)0}, {(byte)88, (byte)73, (byte)69, (byte)0, (byte)0, (byte)0}, {(byte)88, (byte)73, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)88, (byte)73, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)88, (byte)73, (byte)79, (byte)78, (byte)71, (byte)0}, {(byte)88, (byte)73, (byte)85, (byte)0, (byte)0, (byte)0}, {(byte)88, (byte)85, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)88, (byte)85, (byte)65, (byte)78, (byte)0, (byte)0}, {(byte)88, (byte)85, (byte)69, (byte)0, (byte)0, (byte)0}, {(byte)88, (byte)85, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)89, (byte)65, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)89, (byte)65, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)89, (byte)65, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)89, (byte)65, (byte)79, (byte)0, (byte)0, (byte)0}, {(byte)89, (byte)69, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)89, (byte)73, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)89, (byte)73, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)89, (byte)73, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)89, (byte)79, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)89, (byte)79, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)89, (byte)79, (byte)85, (byte)0, (byte)0, (byte)0}, {(byte)89, (byte)85, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)89, (byte)85, (byte)65, (byte)78, (byte)0, (byte)0}, {(byte)89, (byte)85, (byte)69, (byte)0, (byte)0, (byte)0}, {(byte)89, (byte)85, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)74, (byte)85, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)89, (byte)85, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)90, (byte)65, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)90, (byte)65, (byte)73, (byte)0, (byte)0, (byte)0}, {(byte)90, (byte)65, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)90, (byte)65, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)90, (byte)65, (byte)79, (byte)0, (byte)0, (byte)0}, {(byte)90, (byte)69, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)90, (byte)69, (byte)73, (byte)0, (byte)0, (byte)0}, {(byte)90, (byte)69, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)90, (byte)69, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)90, (byte)72, (byte)65, (byte)0, (byte)0, (byte)0}, {(byte)90, (byte)72, (byte)65, (byte)73, (byte)0, (byte)0}, {(byte)90, (byte)72, (byte)65, (byte)78, (byte)0, (byte)0}, {(byte)90, (byte)72, (byte)65, (byte)78, (byte)71, (byte)0}, {(byte)67, (byte)72, (byte)65, (byte)78, (byte)71, (byte)0}, {(byte)90, (byte)72, (byte)65, (byte)78, (byte)71, (byte)0}, {(byte)90, (byte)72, (byte)65, (byte)79, (byte)0, (byte)0}, {(byte)90, (byte)72, (byte)69, (byte)0, (byte)0, (byte)0}, {(byte)90, (byte)72, (byte)69, (byte)78, (byte)0, (byte)0}, {(byte)90, (byte)72, (byte)69, (byte)78, (byte)71, (byte)0}, {(byte)90, (byte)72, (byte)73, (byte)0, (byte)0, (byte)0}, {(byte)83, (byte)72, (byte)73, (byte)0, (byte)0, (byte)0}, {(byte)90, (byte)72, (byte)73, (byte)0, (byte)0, (byte)0}, {(byte)90, (byte)72, (byte)79, (byte)78, (byte)71, (byte)0}, {(byte)90, (byte)72, (byte)79, (byte)85, (byte)0, (byte)0}, {(byte)90, (byte)72, (byte)85, (byte)0, (byte)0, (byte)0}, {(byte)90, (byte)72, (byte)85, (byte)65, (byte)0, (byte)0}, {(byte)90, (byte)72, (byte)85, (byte)65, (byte)73, (byte)0}, {(byte)90, (byte)72, (byte)85, (byte)65, (byte)78, (byte)0}, {(byte)90, (byte)72, (byte)85, (byte)65, (byte)78, (byte)71}, {(byte)90, (byte)72, (byte)85, (byte)73, (byte)0, (byte)0}, {(byte)90, (byte)72, (byte)85, (byte)78, (byte)0, (byte)0}, {(byte)90, (byte)72, (byte)85, (byte)79, (byte)0, (byte)0}, {(byte)90, (byte)73, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)90, (byte)79, (byte)78, (byte)71, (byte)0, (byte)0}, {(byte)90, (byte)79, (byte)85, (byte)0, (byte)0, (byte)0}, {(byte)90, (byte)85, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)90, (byte)85, (byte)65, (byte)78, (byte)0, (byte)0}, {(byte)90, (byte)85, (byte)73, (byte)0, (byte)0, (byte)0}, {(byte)90, (byte)85, (byte)78, (byte)0, (byte)0, (byte)0}, {(byte)90, (byte)85, (byte)79, (byte)0, (byte)0, (byte)0}, {(byte)0, (byte)0, (byte)0, (byte)0, (byte)0, (byte)0}, {(byte)83, (byte)72, (byte)65, (byte)78, (byte)0, (byte)0}, {(byte)0, (byte)0, (byte)0, (byte)0, (byte)0, (byte)0}};
    private static final String FIRST_PINYIN_UNIHAN = "阿";
    private static final String LAST_PINYIN_UNIHAN = "\u9fff";
    private static final Collator COLLATOR;
    private static HanziToPinyin sInstance;
    private final boolean mHasChinaCollator;

    protected HanziToPinyin(boolean var1) {
        this.mHasChinaCollator = var1;
    }

    public static HanziToPinyin getInstance() {
        Class var0 = HanziToPinyin.class;
        synchronized(HanziToPinyin.class) {
            if(sInstance != null) {
                return sInstance;
            } else {
                Locale[] var1 = Collator.getAvailableLocales();

                for(int var2 = 0; var2 < var1.length; ++var2) {
                    if(var1[var2].equals(Locale.CHINA) || var1[var2].getLanguage().equals("zh") && var1[var2].getCountry().equals("HANS")) {
                        sInstance = new HanziToPinyin(true);
                        return sInstance;
                    }
                }

//                EMLog.w("HanziToPinyin", "There is no Chinese collator, HanziToPinyin is disabled");
                sInstance = new HanziToPinyin(true);
                return sInstance;
            }
        }
    }

    private static boolean doSelfValidation() {
        char var0 = UNIHANS[0];
        String var1 = Character.toString(var0);
        char[] var2 = UNIHANS;
        int var3 = var2.length;

        for(int var4 = 0; var4 < var3; ++var4) {
            char var5 = var2[var4];
            if(var0 != var5) {
                String var6 = Character.toString(var5);
                int var7 = COLLATOR.compare(var1, var6);
                if(var7 >= 0) {
//                    EMLog.e("HanziToPinyin", "Internal error in Unihan table. The last string \"" + var1 + "\" is greater than current string \"" + var6 + "\".");
                    return false;
                }

                var1 = var6;
            }
        }

        return true;
    }

    private Token getToken(char var1) {
        Token var2 = new Token();
        String var3 = Character.toString(var1);
        var2.source = var3;
        int var4 = -1;
        if(var1 < 256) {
            var2.type = 1;
            var2.target = var3;
            return var2;
        } else {
            int var5 = COLLATOR.compare(var3, "阿");
            if(var5 < 0) {
                var2.type = 3;
                var2.target = var3;
                return var2;
            } else {
                if(var5 == 0) {
                    var2.type = 2;
                    var4 = 0;
                } else {
                    var5 = COLLATOR.compare(var3, "\u9fff");
                    if(var5 > 0) {
                        var2.type = 3;
                        var2.target = var3;
                        return var2;
                    }

                    if(var5 == 0) {
                        var2.type = 2;
                        var4 = UNIHANS.length - 1;
                    }
                }

                var2.type = 2;
                int var7;
                if(var4 < 0) {
                    int var6 = 0;
                    var7 = UNIHANS.length - 1;

                    while(var6 <= var7) {
                        var4 = (var6 + var7) / 2;
                        String var8 = Character.toString(UNIHANS[var4]);
                        var5 = COLLATOR.compare(var3, var8);
                        if(var5 == 0) {
                            break;
                        }

                        if(var5 > 0) {
                            var6 = var4 + 1;
                        } else {
                            var7 = var4 - 1;
                        }
                    }
                }

                if(var5 < 0) {
                    --var4;
                }

                StringBuilder var9 = new StringBuilder();

                for(var7 = 0; var7 < PINYINS[var4].length && PINYINS[var4][var7] != 0; ++var7) {
                    var9.append((char)PINYINS[var4][var7]);
                }

                var2.target = var9.toString();
                if(TextUtils.isEmpty(var2.target)) {
                    var2.type = 3;
                    var2.target = var2.source;
                }

                return var2;
            }
        }
    }

    public ArrayList<Token> get(String var1) {
        ArrayList var2 = new ArrayList();
        if(this.mHasChinaCollator && !TextUtils.isEmpty(var1)) {
            int var3 = var1.length();
            StringBuilder var4 = new StringBuilder();
            int var5 = 1;

            for(int var6 = 0; var6 < var3; ++var6) {
                char var7 = var1.charAt(var6);
                if(var7 == 32) {
                    if(var4.length() > 0) {
                        this.addToken(var4, var2, var5);
                    }
                } else if(var7 < 256) {
                    if(var5 != 1 && var4.length() > 0) {
                        this.addToken(var4, var2, var5);
                    }

                    var5 = 1;
                    var4.append(var7);
                } else {
                    Token var8 = this.getToken(var7);
                    if(var8.type == 2) {
                        if(var4.length() > 0) {
                            this.addToken(var4, var2, var5);
                        }

                        var2.add(var8);
                        var5 = 2;
                    } else {
                        if(var5 != var8.type && var4.length() > 0) {
                            this.addToken(var4, var2, var5);
                        }

                        var5 = var8.type;
                        var4.append(var7);
                    }
                }
            }

            if(var4.length() > 0) {
                this.addToken(var4, var2, var5);
            }

            return var2;
        } else {
            return var2;
        }
    }

    private void addToken(StringBuilder var1, ArrayList<Token> var2, int var3) {
        String var4 = var1.toString();
        var2.add(new Token(var3, var4, var4));
        var1.setLength(0);
    }

    static {
        COLLATOR = Collator.getInstance(Locale.CHINA);
    }

    public static class Token {
        public static final String SEPARATOR = " ";
        public static final int LATIN = 1;
        public static final int PINYIN = 2;
        public static final int UNKNOWN = 3;
        public int type;
        public String source;
        public String target;

        public Token() {
        }

        public Token(int var1, String var2, String var3) {
            this.type = var1;
            this.source = var2;
            this.target = var3;
        }
    }
}