栈类练习---Excel地址转换

 题目要求:

 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

【注意】
    请仔细调试!您的程序只有能运行出正确结果的时候才有机会得分!
    在评卷时使用的输入数据与试卷中给出的实例数据可能是不同的。




 输入代码:

/*
 * Excel地址转换
 */
import java.util.Scanner;
import java.util.Stack;
public class Main 
{
	public static void main(String[] args) 
	{
     Scanner in=new Scanner(System.in);
     int i,n;
     n=in.nextInt();
     i=0;
     in.nextLine();//必须在连续输入字符串前加上这个,不然会出现错误
     while(i<n)
     {
    	String str=in.nextLine();
    	String []ss=str.split("C");//以C为分割符转换字符串为字符数组
    	ss[0]=ss[0].substring(1,ss[0].length());//第一位为字母R,所以截取1位以后的字符做数字
    	int HS=Integer.parseInt(ss[0]);//分割出行数和列数
    	int LS=Integer.parseInt(ss[1]);
    	
    	/*
    	 * 对列数进行变换
    	 */
    	
       java.util.Stack stack=new java.util.Stack();//建立栈类
       
       while(LS>0)
       {
    	   if(LS%26==0)//如果刚好整除26,则在该栈栈顶添加元素Z
    	   {
    		   stack.push('Z');
    		   LS=LS/26-1;
    	   }
    	   else
    	   {
    		   stack.push((char)('A'-1+LS%26));
    		   LS=LS/26;
    	   }
    	   
       }
       
       while(!stack.empty())//当该栈不为空时
       {
    	   System.out.print(stack.pop());//返回并删除该栈栈顶的元素,这里则是输出栈顶元素
       }
       
       System.out.println(HS);
       
       i++;
     }
	}

}


总结:


有函数真是方便多了,不用自己思考写函数,节省很多时间


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

潇潇雨歇_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值