zoukankan      html  css  js  c++  java
  • 地址转换


        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

    【注意】

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

     

    import java.util.HashMap;
    import java.util.Map;
    import java.util.Scanner;
    import java.util.Set;
    
    
    public class Test {
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		int line=readInt();
    		String s;
    		Map map=new HashMap();
    		for(int i=0;i<line;i++)
    		{
    			map.put(i, readLine());
    		}
    		Set<Integer> set = map.keySet();
            if (set == null) {
                return;
            }
    		for(Integer i:set)
    		{
    			String s1,s2;
    			s=(String) map.get(i);
    			int a=s.indexOf('R');
    			int b=s.indexOf('C');
    			int c=s.length();
    			s1=s.substring(a+1, b);
    			s2=s.substring(b+1, c);
    
    			printchar(Integer.parseInt(s2));
    			System.out.print(s1);
    			System.out.println();
    		
    		}
    	
    
    	}
    	public static void printchar(int a)
    	{
    		if(a>=26)
    		{
    		System.out.print(getNomul1(a));
    		System.out.print(getNomul2(a));
    		}
    		else
    		{
    			System.out.print(getNomul2(a));
    		}
    	}
    	public static char getNomul1(int a)
    	{
    		char b=(char)(a/26+64);
    		return b;
    
    	}
    	public static char getNomul2(int a)
    	{
    		char b=(char)(a%26+64);
    		return b;
    
    	}
    	 public static String readLine(){
    	        Scanner sc=new Scanner(System.in);
    	        return sc.next();
    	    }
    	    
    	    public static int readInt(){
    	        Scanner sc=new Scanner(System.in);
    	        String str=sc.next();
    	        return Integer.parseInt(str);
    	    }
    	    
    	    public static double readDouble(){
    	        Scanner sc=new Scanner(System.in);
    	        String str=sc.next();
    	        return Double.parseDouble(str);
    	    }
    
    }
    

    结果:

    2
    R12C4
    R5C255

    D12
    IU5

  • 相关阅读:
    redis-hash
    redis-list操作
    bootstrap之消息提示
    jQuery水平下拉菜单实现
    JavaScript的Date对象
    积水问题
    Queue的push和front操作
    Stack的pop和push操作
    .py文件不能设置默认打开程序 win10
    Anaconda的安装
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3024636.html
Copyright © 2011-2022 走看看