根据cellname和colspan计算该单元格上面存在哪些单元格-计算某个单元格上面有多少单元格

根据cellname和colspan计算该单元格上面存在哪些单元格-计算某个单元格上面有多少单元格

输出示例:

start:A
end:4
cellNameList:[A1, B1, C1, A2, B2, C2, A3, B3, C3]

测试代码:

public static void main(String[] args) {
//根据cellname和colspan计算该单元格上面存在哪些单元格,例如A4跨3列时,上面存在的单元格有A1、A2、A3、B1、B2、B3、C1、C2、C3
		String cellname = "A4";
		int colspan = 3;
		List<String> cellNameList = new ArrayList<String>();
		char[] charArray = cellname.toCharArray();
		String start = "";
		String end = "";
		for(int i = 0;i < charArray.length;i++){
			if(check(charArray[i])){
				start += charArray[i];
			}else if(isNumeric(charArray[i])){
				end += charArray[i];
			}
		}
		System.out.println("start:"+start);
		System.out.println("end:"+end);
		int rowNumber = Integer.parseInt(end);
		int lastCol = (int) start.charAt(start.length()-1); // 强制类型转换,将字符转换成整数
		for(int row = 1;row < rowNumber;row++){
			for(int col = 0;col < colspan;col++){
				String colName = "";
				//A至Z是65至90
				if(lastCol + col > 90){
					char lastStr = (char)(lastCol + col - 90 + 64);
					colName = "A"+lastStr;
				}else{
					char lastStr = (char)(lastCol + col);
					colName = ""+lastStr;
				}
				if(start.length() > 1){
					colName = start.substring(0, start.length()-1) + colName;
				}
				String name = colName+row;
				cellNameList.add(name);
			}
		}
		System.out.println("cellNameList:"+cellNameList);
	}

/**
	 * 判断一个字符是否为字母
	 * @param c
	 * @return
	 */
	public static boolean check(char c){
		if((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')){
			return true;
		}
		return false;
	}
	
	/**
	 * 判断一个字符是否为数字
	 * @param c
	 * @return
	 */
	public static boolean isNumeric(char c){
		if(c<48 || c>57){
			return false;
		}
		return true;
	}

其他相关:

1、java中的字母转数字

ASCII码是一种用于在计算机中表示字符的编码方式,每个字符都有对应的唯一的ASCII码。在Java中,可以通过将字符类型的数据转换成整数类型来获取其ASCII码。

A至Z是65至90,a至z是97至122.

java中的字母转数字可以通过强制类型转换和字符的ASCII码来实现。

ASCII码是一种用于在计算机中表示字符的编码方式,每个字符都有对应的唯一的ASCII码。在Java中,可以通过将字符类型的数据转换成整数类型来获取其ASCII码。

以下是一种常见的将字母转换成数字的方法:

// 将字母转换成数字的方法
public static int charToNumber(char c) {
    int n= (int) c; // 强制类型转换,将字符转换成整数
    if(n>= 65 && n<= 90) {
        // 如果是大写字母,将其转换成对应的数字(0-25)
        n= n- 65;
    } else if(n>= 97 && n<= 122) {
        // 如果是小写字母,将其转换成对应的数字(0-25)
        n= n- 97;
    } else {
        // 如果不是字母,返回-1表示无效输入
        n= -1;
    }
    return n;
}

2、Java中判断字符串是否为数字的五种方法

//方法一:用JAVA自带的函数
	public static boolean isNumeric1(String str){
	   for (int i = str.length();--i>=0;){  
	       if (!Character.isDigit(str.charAt(i))){
	           return false;
	       }
	   }
	   return true;
	}

	/*方法二:推荐,速度最快
	  * 判断是否为整数 
	  * @param str 传入的字符串 
	  * @return 是整数返回true,否则返回false 
	*/
	  public static boolean isInteger2(String str) {  
	        Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$");  
	        return pattern.matcher(str).matches();  
	  }

	//方法三:
	public static boolean isNumeric3(String str){
	    Pattern pattern = Pattern.compile("[0-9]*");
	    return pattern.matcher(str).matches();   
	}

	//方法四:
	public final static boolean isNumeric4(String s) {
	    if (s != null && !"".equals(s.trim()))
	        return s.matches("^[0-9]*$");
	    else
	        return false;
	}
	
	//方法五:用ascii码 
	public static boolean isNumeric5(String str){
	    for(int i=str.length();--i>=0;){
	        int chr=str.charAt(i);
	        if(chr<48 || chr>57)
	            return false;
	    }
	   return true;
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值