美文网首页
salesforce 15位ID转18位ID java实现

salesforce 15位ID转18位ID java实现

作者: 老鼠抗大枪 | 来源:发表于2019-04-29 17:13 被阅读0次

import org.apache.commons.lang3.StringUtils;

public class ID15to18Converter {

    final static char[] chars;

    static {

        chars = new char[32];

        for (int i = 0; i <= 'Z'-'A'; i++) {

            chars[i] = (char) ('A' + i);

        }

        for (int i = 0; i <= 5; i++) {

            chars[32 - i - 1] = (char) (5 - i);

        }

    }

    static String get18ID(String id15) {

        int groupNum = 3;

        String suffString = "";

        for (int i = 0; i < groupNum; i++) {

            String curString  = id15.substring(i*5, i*5 + 5);

            String revCurString = StringUtils.reverse(curString);

            String binString = "";

            for (int j = 0; j < revCurString.length(); j++) {

                char curChar = revCurString.charAt(j);

                if (curChar>='A' && curChar <='Z') {

                    binString += "1";

                }else {

                    binString += "0";

                }

            }

            int curIndex  = Byte.valueOf(binString,2);

            suffString += chars[curIndex];

        }

        return id15 + suffString;

    }

    public static void main(String[] args) {

        String ss = "7510w000000H1Hl";

        System.out.println(get18ID(ss));

    }

}

相关文章

网友评论

      本文标题:salesforce 15位ID转18位ID java实现

      本文链接:https://www.haomeiwen.com/subject/gtkunqtx.html