java像excel表格列一样添加一列后列名输出A~Z或AA~AZ等求输入1则输出为A,输入27则输出AA

求代码... 求代码 展开
 我来答
开心还亲切灬萨摩
2014-01-26 · 超过44用户采纳过TA的回答
知道小有建树答主
回答量:114
采纳率:100%
帮助的人:87.5万
展开全部
可以用如下代码实现改功能,输入一个数字27返回AB

String[] array = new String[] { "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" };

int num = 428;
int count = 26;
System.out.println("num/count=" + num/count);
String out = "";
if (num/count != 0) {
out = array[num/count-1];
if (num%count == 0) {
out = out + array[num%count];
System.out.println(out);
} else {
out = out + array[num%count-1];
System.out.println(out);
}
} else {
out = array[num-1];
System.out.println(out);
}
接访曼0F4
2014-01-26 · TA获得超过363个赞
知道小有建树答主
回答量:149
采纳率:0%
帮助的人:151万
展开全部
 import java.util.HashMap;
import java.util.Iterator;
public class test1 {
 /**
  * 利用HashMap
  * @param args
  */
 public static void main(String[] args) {
  HashMap<String,String> hm=new HashMap<String,String>();
  for(int k=0;k<=26;k++){
   int j=k>=1?k:0;
   for(int i=1;i<=26;i++){
    if(j>=1)
     hm.put(k*26+i+"",((char)(j+64))+""+((char)(i+64)));
    else
     hm.put(k*26+i+"",((char)(i+64))+"");
   }
  }
  Iterator it=hm.keySet().iterator();
  while(it.hasNext()){
   String key=(String)it.next();
   //用列号1、27、28来做测试是否正确
   if(key.equals(1+"")||key.equals(27+"")||key.equals(28+"")){
    String value=hm.get(key);
    System.out.println(value);
   }
  }
 }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
桂镶桖28
2014-01-26 · TA获得超过593个赞
知道小有建树答主
回答量:307
采纳率:0%
帮助的人:211万
展开全部
实际就是10进制转换为26进制,可以参考10进制转2进制、8进制、16进制。自己实现试试看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a352020
2018-08-31
知道答主
回答量:3
采纳率:0%
帮助的人:2224
展开全部
public class VersionCode {
    public static Integer CodeConvert(String s) {
        if (s==null || s.length()==0) return 0; 
        int n = 0;
        char[] cc=s.toCharArray();
        for (int i = s.length() - 1, j = 1; i >= 0; i--, j *= 26){
             char c = cc[i];
            if (c < 'A' || c > 'Z') return 0;
            n += ((int)c - 64) * j;
        }
        return n;
    }

    public static String CodeConvert(int n) {
        String s = "";
            while (n > 0){
                int m = n % 26;
                if (m == 0) m = 26;
                s = (char)(m + 64) + s;
                n = (n - m) / 26;
            }
            return s;
    }

    public static void main(String[] args) {
        for (int i=1;i<1000;i++) {
            System.out.println("i="+i+" =>"+CodeConvert(i));
        }
        System.out.println("i=AAA"+" =>"+CodeConvert("AAA"));
    }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式