公司的笔试题,闲着没事写一写
形如Microsoft excel中的列标为A、B、C……Z、AA、AB……ZZ,并假设A列标对应的为excel的第0列;请用最简单快捷的方式实现以下功能:
1、 任意输入1个或2个字母的组合,查找出该单个字母或组合对应的为哪列(例如输入AA,则打印出为第26列)
2、 任意输入1个列数字,查找出该列对应的字母或字母组合,如果越界则打印出“输入列越界,请重新输入”;(例如输入26,则打印出AA)注意:不可采用定义大数组的方式,即定义所有字母及组合的一个大数组
方法一:
/**
* @return java.lang.String
* @Author jijl
* @Description:
* @Date 18:01 2018/9/20
* @Param [str]
**/
public static String printsss(String str) {
String txt;
//字母
if (str.matches("^[A-Z]{1,2}$")) {
if (str.length() == 1) {
txt = (str.charAt(0) - 'A') + "";
} else {
txt = (str.charAt(0) - 'A' + 1) * 26