如下
a b c .... z aa ab ac .... az ba bb bc
.... yz za zb zc .... zz aaa aab aac ....
分别代表以下编号:
1 2 3 .... 26 27 28 29 .... 52 53 54 55
.... 676 677 678 679 .... 702 703 704 705 ....
写个函数,完成从一个正整数到这种字符串之间的转换。
a b c .... z aa ab ac .... az ba bb bc
.... yz za zb zc .... zz aaa aab aac ....
分别代表以下编号:
1 2 3 .... 26 27 28 29 .... 52 53 54 55
.... 676 677 678 679 .... 702 703 704 705 ....
写个函数,完成从一个正整数到这种字符串之间的转换。
解决方案 »
- 打jar包问题???
- 终端界面GUI开源项目charva
- 跪求: struts+hibernate 做的BBS源码(数据库是sqlserver)的下载地址 [webwork2的更好]
- 使用jdbc如何连接sqlserver2K的一个实例?
- 请大家来讨论Integer.bitCount方法为什么要这么实现!附上一个类似的方法的实现,请指正。
- 怎么跳出上层循环??
- 对于一个double 变量,如何使它可以按照要求的精度输出(在线)
- 请大家来讨论一下Throwable例外的initCause(Throwable cause)方法!
- java 中图片显示的问题?
- 各位大佬,请问这段注释为什么会报错啊???
- 关于java客户/服务器Socket通信循环的问题。
- java mail怎么用啊?正文和附件出现乱码怎么处理?
if(num>=1 && num<= 26)
{
return Character.toString((char)(num - 1 + 'a'));
}
int zint,yint;
zint = num/26; //整数部分
yint = num%26; //余数部分
char zchar, ychar;
zchar = (char) (zint + 'a' - 1);
ychar = (char) (yint + 'a' - 1);
if(yint == 0){ //余数为0
zchar -=1;
ychar = 'z';
}
return new String( Character.toString(zchar) + Character.toString(ychar) );
}只到702,超过的仍需要写函数判断
public class TestNumStr {
static char sBit[]={'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',};
public static String num2Str(int n){
if(n==0)
return "Not Defined!";
String s="";
String sign=n>0?"":"-";
n=n>0?n:-n;
while(n>0){
s+=sBit[n%26];
n/=26;
}
StringBuffer sb=new StringBuffer(s);
sb.reverse();
s=sb.toString();
s=sign+s;
return s;
}
public static void main(String[] args){
System.out.println(num2Str(705));
System.out.println(num2Str(1024));
System.out.println(num2Str(-362));
System.out.println(num2Str(0));
}
}
有难度,26进制
-------------------------------
同意这个,不过1—9不是用1-9表示,而是用a-j来表示。
0 的问题,这里就认为是 . 吧,实际认为是点儿不太正确!