进制。把十进制数字用A-Z表示成二十六进制

来源:互联网 发布:服务器怎么开放端口 编辑:程序博客网 时间:2024/05/16 07:24

题目:在Excel中, 用A表示第1列, B表示第2列......, Z表示第26列,AA表示第27列,AB表示第28列..., 以此类推。请写出一个函数,输入用字母表示的列号编码,输出他是第几列。

把十进制数字用A-Z表示成二十六进制

package offer;public class WordColumns {public static void main(String[] args) {System.out.println(wordColumns("AC"));}public static int wordColumns(String str){if(str==null || str.length()==0) return 0;int column = 0;String tmp="ABCDEFGHIJKLMNOPQRSTUVWXYZ";int length = str.length();for(int i=0; i<str.length(); i++){char ch = str.charAt(i);int weight = weight(tmp,ch);if(weight==0)return 0;column += weight*(int)Math.pow(26,length-1-i);}return column;}private static int weight(String str,char ch){int weight = 0;for(int i=0; i<str.length(); i++){if(ch==str.charAt(i)){weight = i+1;break;}}return weight;}}


0 0