excel 헤더 변환

1492 단어 Excel

 
 
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-A2-B3--C4--D5-E6-F7--G8--H9-I10-J11--K12--L13--M14-N15--O16--P17--Q18--R19--S20--T21--U22--V23--W24--X25--Y26--AA28--AB29--AC30-AD31--AE32--AF33--AG...701--ZY702--ZZ703--AAA704--AAB705--AAC706--AAD707--AAE708--AAF709--AAG....18276--ZZX18277--ZZY18278--ZZZ18279--AAAA18280--AAAB18281--AAAC
 
이 문제도 아주 고전적인 면접 문제입니다.

좋은 웹페이지 즐겨찾기