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]);
}
}