Excelヘッダ変換
1501 ワード
package com.cgroup.datastruct;
import java.util.HashMap;
import java.util.Map;
public class MyExcel {
static Map map = new HashMap();
static {
for (int i = 1; i <= 26; i++) {
char letter = (char) (64 + i);
map.put(i, letter);
}
}
public static void main(String[] args) {
for (int i = 1; i < 30000; i++) {
String a = test(i);
System.out.println(i + "--" + a);
}
}
private static String test(int data) {
int shang = data / 26;
int mod = data % 26;
if (mod == 0) {
shang = (data - 1) / 26;
mod = (data - 1) % 26 + 1;
}
if (shang > 26) {
return test(shang)+map.get(mod);
} else {
StringBuffer sb = new StringBuffer();
// 0 ,
if (shang > 0) {
sb.append(map.get(shang));
}
sb.append(String.valueOf(map.get(mod)));
return sb.toString();
}
}
}
出力結果:1-A 2-B 3-C 4-D 5-E 6-F 7-G 8-H 9-I 10--J 11-K 12-L 13--M 14-N 15-O 16--P 17-Q 18--R 19-S 20-T 21--U 22--V 23--W 24--X 25--Y 26--Z 27--AA 28--AB 29--AC 30-A 31--AE 32--AF 33--AG…701--ZY702--ZZ703--AAA704--AAB705--AAC706--AAD707--AAE708--AAF709--AAG....18276--ZZX18277--ZZY18278--ZZZ18279--AAAA18280--AAAB18281--AAAC
この問題も非常に古典的な面接問題です.