JAVA把汉字转换成十六进制、三十六进制等

可以调用show("在国",16)生成16进制,17、22........,最多支持到36
import java.util.ArrayList;
import java.util.List;

public class ThritySix {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		String str = "中华人发共和国";
		System.out.println(show(str,36));
	}

	public static List
  
   show(String source, int p) {
		List
  
   list = new ArrayList
  
  ();
		char[] arr = source.toCharArray();
		for (char c : arr) {
			StringBuilder sb = new StringBuilder();
			int tt = c;

			int ii = 0;
			System.out.println(tt);
			
			while (tt != 0) {
				ii = tt % p;
				if (ii > 9) {//如果大于9则用A-Z代替
					sb.insert(0, getData(ii));//插入到最前面
				} else {
					sb.insert(0, ii);//插入到最前面
				}
				tt = tt / p;
			}
			list.add(sb.toString());
		}
		
		return list;
	}

	public static String getData(int i) {
		switch (i) {
		case 10:
			return "A";
		case 11:
			return "B";
		case 12:
			return "C";
		case 13:
			return "D";
		case 14:
			return "E";
		case 15:
			return "F";
		case 16:
			return "G";
		case 17:
			return "H";
		case 18:
			return "I";
		case 19:
			return "J";
		case 20:
			return "K";
		case 21:
			return "L";
		case 22:
			return "M";
		case 23:
			return "N";
		case 24:
			return "O";
		case 25:
			return "P";
		case 26:
			return "Q";
		case 27:
			return "R";
		case 28:
			return "S";
		case 29:
			return "T";
		case 30:
			return "U";
		case 31:
			return "V";
		case 32:
			return "W";
		case 33:
			return "X";
		case 34:
			return "Y";
		case 35:
			return "Z";

		}
		return "";
	}

}
输出结果:
[FFX, GGE, FJU, GK1, G35, GP8, H6L]
 
当然还有最简单的方法:
public String[] show(String source,int p){
    String[] tem = new String[source.length()];
    char[] arr=source.toCharArray();
    int i=0;
    for(char c:arr){
        tem[i++]=Integer.toString(c,p);
    }
    return tem; 
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值