Excel是最常用的办公软件。每个单元格都有唯一的地址表示。比如:第12行第4列表示为:“D12”,第5行第255列表示为“IU5”。
事实上,Excel提供了两种地址表示方法,还有一种表示法叫做RC格式地址。 第12行第4列表示为:“R12C4”,第5行第255列表示为“R5C255”。
你的任务是:编写程序,实现从RC地址格式到常规地址格式的转换。
【输入、输出格式要求】
用户先输入一个整数n(n<100),表示接下来有n行输入数据。
接着输入的n行数据是RC格式的Excel单元格地址表示法。
程序则输出n行数据,每行是转换后的常规地址表示法。
例如:用户输入:
2
R12C4
R5C255
则程序应该输出:
D12
IU5
package com.zcb;
import java.util.Scanner;
/**
*
* @author zhengchubin
*
*/
public class AddressChange {
public static void main(String args[]){
//java简单的输入处理
Scanner s = new Scanner(System.in);
int num = s.nextInt();
//temp用来接收输入的空格
String temp = s.nextLine();
for(int i=0;i<num;i++){
String str =s.nextLine();
fj(str);
}
}
//该方法用来分解原本的地址如:R12C4
public static void fj(String str){
int i = str.indexOf("R");
int j = str.indexOf("C");
String r1 = str.substring(i+1,j);
String c1 = str.substring(j+1,str.length());
String result = change(r1,c1);
System.out.println(result);
}
//根据行数跟列数进行转换
public static String change(String r1,String c1){
StringBuilder str = new StringBuilder();
int lie = Integer.valueOf(c1);
int hang = Integer.valueOf(r1);
if(lie<=26){
char m = 'A';
str.append(m);
}else{
int t = lie/26;
char m = (char) (t-1+'A');
int t2 = lie%26;
char m2 = (char) (t2-1+'A');
str.append(m);
str.append(m2);
}
str.append(r1);
return str.toString();
}
}