java实现10进制转换为英文字符表示的26进制,得到唯一自增的英文字符串序列。

public class Demo {
 
	//java实现10进制转换为英文字符表示的26进制,得到唯一自增的英文字符串序列。
    public static void main(String[] args) {
        

        for(int i=0;i<1500;i++)
        {
        	//String str=to52Jinzhi(i);
            //System.out.println(str);
            
            String str=to26Jinzhi(i);
            System.out.println(str);
            
        }
    }
    //10进制转换为英文字母表示的52进制
	private static String to52Jinzhi(int data) {
		String str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
		int scale = str.length(); //转化目标进制
        String s = "";
        if(data==0)
        {
        	return str.charAt(0)+"";
        }
        while(data > 0){
            if(data < scale){
                s = str.charAt(data) + s;
                data = 0;
            }else{
                int r = data%scale;
                s = str.charAt(r) + s;
                data  = (data-r)/scale;
            }
        }
        return s;
	}  
	//10进制转换为英文字母表示的26进制
	private static String to26Jinzhi(int data) {
		String str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
		int scale = str.length(); //转化目标进制
        String s = "";
        if(data==0)
        {
        	return str.charAt(0)+"";
        }
        while(data > 0){
            if(data < scale){
                s = str.charAt(data) + s;
                data = 0;
            }else{
                int r = data%scale;
                s = str.charAt(r) + s;
                data  = (data-r)/scale;
            }
        }
        return s;
	}  
	

	 /**
     * 进制转换
     * @param data 十进制数据
     * @param radix 待转换的进制
     * @return 转换后的字符串显示
     */
    public static String toRadix(int data,int radix){
        char[] digits={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
        char buf[] = new char[33];
        int charPos = 32;
        
        while(data>radix){
            buf[charPos--]=digits[data % radix];
            data=data/radix;
        }
        buf[charPos] = digits[data];
        return new String(buf, charPos, (33 - charPos));    
    }
 
}
package testjava;

public class Demo{
	 
	//java实现10进制转换为英文字符表示的26进制,得到唯一自增的英文字符串序列。
    public static void main(String[] args) {
        
 
        for(int i=1;i<1500;i++)
        {
        	//String str=to52Jinzhi(i);
            //System.out.println(i+"=>"+str);
           
        	// int i=52;
            String str=to26Jinzhi(i);
            System.out.println(i+"=>"+str);           
        }
    }
    //10进制转换为英文字母表示的52进制
	private static String to52Jinzhi(int data) {
		String str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
		int scale = str.length(); //转化目标进制
        String s = "";
        if(data==1)
        {
        	return str.charAt(0)+"";
        }
        while(data > 0){
            if(data <= scale){
                s = str.charAt(data-1) + s;
                data = 0;
            }else{
                int r = data%scale;
                if(r==0)
                {
                	 s = str.charAt(scale-1) + s;
                	 data  = (data-1)/scale;
                }else{
                	 s = str.charAt(r-1) + s;
                	 data  = (data-r)/scale;
                }              
               
            }
        }
        return s;
	}  
	//10进制转换为英文字母表示的26进制
	private static String to26Jinzhi(int data) {
		String str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
		int scale = str.length(); //转化目标进制
        String s = "";
        if(data==1)
        {
        	return str.charAt(0)+"";
        }
        while(data > 0){
            if(data <= scale){
                s = str.charAt(data-1) + s;
                data = 0;
            }else{
                int r = data%scale;
                if(r==0)
                {
                	 s = str.charAt(scale-1) + s;
                	 data  = (data-1)/scale;
                }else{
                	 s = str.charAt(r-1) + s;
                	 data  = (data-r)/scale;
                }              
               
            }
        }
        return s;
	}  
	
 
	 /**
     * 进制转换
     * @param data 十进制数据
     * @param radix 待转换的进制
     * @return 转换后的字符串显示
     */
    public static String toRadix(int data,int radix){
        char[] digits={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
        char buf[] = new char[33];
        int charPos = 32;
        
        while(data>radix){
            buf[charPos--]=digits[data % radix];
            data=data/radix;
        }
        buf[charPos] = digits[data];
        return new String(buf, charPos, (33 - charPos));    
    }
 
}

 

public class ConsoleApplication1 {

	public static void main(String[] args) {

		/*
		for (int i = 0; i <= 727; i++) {

			System.out.println(转换26进制(i));
			System.out.println(by小写转换26进制(i));
		}*/
		
		
		for (int i = 0; i <= 7270; i++) {

			System.out.println(i+"=>"+转换AAA进制(i));	
		}
		
	

	}

	// http://bbs.csdn.net/topics/391015197
	private static String 转换26进制(int x) {
		if (x < 0)
			return "";

		int a = x / 26;
		int b = x % 26;
		return 转换26进制(a - 1) + (char) (b + 'A');
	}

	private static String by小写转换26进制(int x) {
		if (x < 0)
			return "";
		int a = x / 26;
		int b = x % 26;
		return by小写转换26进制(a - 1) + (char) (b + 'a');
	}

	private static String 转换AAA进制(int x) {
		if (x < 0)
			return "";

		int a = x / 26;
		int b = x % 26;
		return 转换AAA进制(a - 1) + (char) (b + 'A');
	}

	private static int 转换AAA进制(String x) {
		return AAA(x, x.length() - 1);
	}

	private static int AAA(String x, int end) {
		int n = x.toCharArray()[end] - 'A';
		if (end == 0)
			return n;

		return (AAA(x, end - 1) + 1) * 26 + n;
	}

}

 

public class My26 {

	static char[] chs26={'A','B','C','D','E','F','G','H','I','J','K','L','M','N',
			'O','P','Q','R','S','T','U','V','W','X','Y','Z'};
	
	static char[] chs52={'A','B','C','D','E','F','G','H','I','J','K','L','M','N',
			'O','P','Q','R','S','T','U','V','W','X','Y','Z',
			'a','b','c','d','e','f','g','h','i','j','k','l','m','n',
			'o','p','q','r','s','t','u','v','w','x','y','z'};
	
	static char[] ch_include_numbers={'A','B','C','D','E','F','G','H','I','J','K','L','M','N',
			'O','P','Q','R','S','T','U','V','W','X','Y','Z',
			'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o',
			'p','q','r','s','t','u','v','w','x','y','z'
			,'0','1','2','3','4','5','6','7','8','9'};
	
	
	public static void main(String[] args) {
		int len=256;
		for(int i=0;i<len;i++)
		{
			String str=to26(i);
			//System.out.print("'"+str.toLowerCase()+"',");
			System.out.print(str+" ");
			
		}
		System.out.println();
		for(int i=0;i<len;i++)
		{
			String str=to52(i);
			System.out.print(str+" ");		
		}
		System.out.println();
		for(int i=0;i<len;i++)
		{
			String str=to62(i);
			System.out.print(str+" ");
			
		}
	}

	private static String to62(int i) {
		if(i<0)
		{
			return "";
		}
		int a=i/ch_include_numbers.length;
		int b=i%ch_include_numbers.length;		
		return to62(a-1)+(char)(ch_include_numbers[b]);
	}
	
	private static String to52(int i) {
		if(i<0)
		{
			return "";
		}
		int a=i/chs52.length;
		int b=i%chs52.length;		
		return to52(a-1)+(char)(chs52[b]);
	}
	
	private static String to26(int i) {
		if(i<0)
		{
			return "";
		}
		int a=i/chs26.length;
		int b=i%chs26.length;		
		return to26(a-1)+(char)(chs26[b]);
	}
	
}

 

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值