관리 메뉴

ballqs 님의 블로그

TIL - 2024년 07월 17일 공부한 내용 정리하기(for문 수행순서 , toCharArray , StringBuilder) 본문

내일배움캠프/Java

TIL - 2024년 07월 17일 공부한 내용 정리하기(for문 수행순서 , toCharArray , StringBuilder)

ballqs 2024. 7. 17. 20:57

1.오늘 배운 것

오늘도 코딩 문제를 풀다가 막힌 부분이 생겨서 알던 내용은 복습하기 위해 모르던 내용은 기록을 위해 작성한다.

우선적으로 복습하는 내용은 for문의 수행순서이다! 이걸 왜 이상하게 생각하고 있었는지 지금 생각해보면 슬프다. 자세한 내용은 개념 정리부분에 작성하겠다.

모르던 내용은 toCharArray() 라는 메소드와 StringBuilder에 대해 배우게 되었다.

 

2.개념 정리

for문

코딩 문제를 풀다가 증감식이 선증가면은 ④이 먼저 동작하고 ②에 가서 조건식에 가는 줄 알았다.

어쩌다가 그렇게 생각을 하게 되었는지 다시 되새기고자 아래와 같이 이미지로 그려놓는다.

해당 for문의 동작 순서는 이러하다

  1. 초기식에 값을 선언 해 놓는다.
  2. 조건식에 가서 조건에 맞는지 검사한다.
  3. 조건이 맞을 경우 실행코드로 이행 아닌 경우 for문을 빠져나간다.
  4. 실행코드가 실행된 후에는 증감식으로 가서 값을 증감한다.

for문의 개선된 사용법

String[] arr = {"1" , "2" , "3"};
for (String s : arr) {
	System.out.println(s);
}
// 출력 결과
// 1
// 2
// 3

이러한 사용법도 있으니 앞으로는 이렇게 사용하도록 적응해보자

 

toCharArray()

주어진 문자열을 한 글자 씩 쪼개서 char타입 배열로 만들어주는 메소드

String str = "ABCDEFG";
// 담기는 형태 => char[] charArr = str.toCharArray();

//출력
for(char c : str.toCharArray()){
    System.out.print(c + " ");
}

// 출력 결과
// A B C D E F G

 

char Type 배열을 String로 만드는 방법

String str2 = new String(charArr);

 

StringBuilder

String 객체는 한번 정해지면 변경이 불가능하다.

그렇기에 +연산자나 혹은 다른 방법들에 의해 String를 변경할 경우 새로운 String 객체를 생성해서 담는다.

만약 문자열을 수정하는 경우가 많이 생길 경우 객체를 계속 생성하기에 비효율적인 코딩이 될수도 있다.

물론 길이가 짧은 경우에는 지장이 없겠으나 수없이 길어지는 경우에는 지장이 생긴다.

이를 해결하는 것이 StringBuilder이다! 문자열 연결의 성능 문제를 해결하도록 설계되었다.

 

사용방법

생성자

StringBuilder sb = new StringBuilder();

String 문자열로 생성하는 방법

StringBuilder sb = new StringBuilder("TEST");

문자열 추가

StringBuilder sb = new StringBuilder();
sb.append("TEST");

문자열 변환

sb.replace(int index1, int index2, String str);
sb.replace(3, 6, "hi")

문자열 뒤집기

sb.reverse();

문자열 String에 담기

String str = sb.toString();

String str = sb.toString();

 

toCharArray() 와 StringBuilder를 통해 푼 문제

숫자 짝꿍

문자열 나누기

둘만의 암호

 

3.해당 개념이 중요한 이유

문제를 풀다가 난관에 처했는데 오늘 배운 toCharArray() 나 StringBuilder 를 통해 좀더 쉽게 푸는 방법이 있다는 것을 깨달았다. 이런것들을 알기 전에는 substring으로 불편하게 하나하나 분리하거나 String을 덧붙이는데 시간초과 나는 일이 많았다. 이래서 공부하는 것이 중요한 것이다.

마지막으로 위의 문제 풀이는 항상 노션에다가 해두는 편이며 노션에도 알게된 것들을 정리해두는 습관으로 작성해둔것이 많다.