18
将Salesforce 15个字符的ID转换为18个字符
在Salesforce CRM中,每个对象都有15个字符的字母数字ID,区分大小写。如果有人好奇,实际上它是62的基数。但是,用于数据迁移和集成的工具可能支持也可能不支持区分大小写。为了克服这个问题,可以将ID安全地转换为18个字符的不区分大小写的字母数字ID。在该过程中,将3个字符的字母数字校验和添加到ID。转换算法为: 范例: a0RE000000IJmcN 将ID分成三个5个字符的块。 a0RE0 00000 IJmcN 反转每个块。 0ER0a 00000 NcmJI 1如果每个字符都用大写字母替换,0否则用大写字母替换。 01100 00000 10011 对于每个5位二进制数i,在位置获取字符i在大写字母和数字0-5(ABCDEFGHIJKLMNOPQRSTUVWXYZ012345)串联的。 00000 -> A, 00001 -> B, 00010 -> C, ..., 11010 -> Z, 11011 -> 0, ..., 11111 -> 5` 屈服: M A T 将这些字符(校验和)附加到原始ID。 输出量: a0RE000000IJmcNMAT 编写以15个字符的字母数字(ASCII)字符串作为输入并返回18个字符的ID的程序或函数。 输入验证不在此问题的范围内。程序可能会返回任何值,或者由于无效输入而崩溃。 请不要使用使该挑战变得微不足道的Salesforce专有语言的功能(例如,公式CASESAFEID(),转换Id为String在APEX&c中 Formula)。 测试用例 a01M00000062mPg …