JAVA Blue Bridge 컵(4) 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

해결 방법

import java.util.Iterator;
import java.util.Scanner;
import java.util.Vector;

public class Question4 {
    public static int total = 0;
    private static Scanner scanner;

    public static void main(String[] args) {
        scanner = new Scanner(System.in);
        int n = Integer.parseInt(scanner.nextLine());
        Vector vector = new Vector();
        for (int i = 0; i < n; i++) {
            String string = scanner.nextLine();
            vector.add(string);
        }
        Iterator iterator = vector.iterator();
        while (iterator.hasNext()) {
            String string = (String) iterator.next();
            char[] chars = string.toCharArray();
            boolean Rbegin = false;
            StringBuffer RstringBuffer = new StringBuffer();
            StringBuffer CstringBuffer = new StringBuffer();
            StringBuffer result = new StringBuffer();
            for (int i = 0; i < chars.length; i++) {
                char c = chars[i];
                if (c == 'R') {
                    Rbegin = true;
                    continue;
                } else if (c == 'C') {
                    Rbegin = false;
                    continue;
                }
                if (Rbegin) {
                    RstringBuffer.append(c);
                } else {
                    CstringBuffer.append(c);
                }
            }
            int c = Integer.parseInt(CstringBuffer.toString());
            int r = Integer.parseInt(RstringBuffer.toString());
            int num = c / 26;
            if (num == 0) {
                result.append((char) ((c % 26) + 64));
            } else if (num >= 1) {
                result.append((char) (num + 64)).append((char) ((c % 26) + 64));
            }
            System.out.print(result.append(r) + "
"
); } } }

실행 결과

2
R12C4
R5C255
D12
IU5

좋은 웹페이지 즐겨찾기