[Java] 문자열 돌리기

peace w·2023년 9월 26일
0

프로그래머스

목록 보기
2/25

문제

  • 문자열 str이 주어집니다.
    문자열을 시계방향으로 90도 돌려서 아래 입출력 예와 같이 출력하는 코드를 작성해 보세요.

  • 제한사항
    1 ≤ str의 길이 ≤ 10

입출력 예

  • 입력 #1
    abcde

  • 출력 #1
    a
    b
    c
    d
    e

문제 풀이

문제 보자마자 90도를 어떻게 돌리지...? 이러고 있었다. 그런 기능이 있는 줄 알았단 얘기다..
이렇게 구현하려면 문자열이 아닌 문자열 안의 문자 하나가 필요하다. 그리고 문자 하나씩 한 줄로 출력하면 된다.
문자열을 한 글자씩 분리하기 위해서 쓸 수 있는 방법들은 다양하다.

1. String.toCharArray()

문자열을 한 글자씩 나눠 char 형 배열로 변환한다.

2. String.charAt(i)

문자열의 i번째 글자를 char로 반환한다.

2번 까지는 대소문자 바꿔서 출력하기에 썼었다.

3. String.split("a")

특정문자(a) 를 기준으로 문자열을 나누어 배열에 저장한 후 반환한다.

        String a = "abc"
        String[] arr = a.split("");
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]); 
            // a
           	// b
            // c
        }

"" 사이에 들어가는 내용 기준으로 문자열을 자른다.
"" 사이를 공백으로 두면 한 단어씩 자를 수 있다.

4. String.substring()

String.Substring(i, i+1);로 한 글자씩 자른다.

        String a = "abcde";
        System.out.println(a.substring(0,1)); // a

값을 하나만 전달하면 그 위치를 포함하여 이후의 모든 문자열을 한꺼번에 불러오지만
첫 번째 값부터 두 번째 값 바로 앞 까지 잘라내기 때문에 (i, i+1)를 전달하면 하나만 불러오는 것도 가능하다.

문자열index 값
a0
b1
c2
d3
e4

index 값 0부터 1 바로 앞 까지를 자르기 때문에 'a' 만 자를 수 있다.

나는 String.charAt(i) 를 사용해서 풀었고 코드는 다음과 같다.

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String a = sc.next();
        
        for(int i = 0; i < a.length(); i++) {
            System.out.println(a.charAt(i));
        }
    }
}

다른 사람들 코드도 구경했는데 다양해서 신기했다. 아직은 아는 메소드가 많이 없어서 어떻게 써야할지 감이 안 오지만 하다보면 익숙해지겠지.

profile
더 성장하자.

0개의 댓글