根据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;
}