본문으로 건너뛰기
Java 기초집LESSON 10

문자열과 StringBuilder: 텍스트 데이터를 안전하게 다루기

난이도입문 → 초급
예상 시간35분
선수지식이전 강의

10강. 문자열과 StringBuilder: 텍스트 데이터를 안전하게 다루기

1. 이번 강의에서 해결할 문제​

문자열을 ==로 비교하거나 반복문에서 계속 +로 이어 붙이면 의도와 성능 문제가 생길 수 있습니다. 내용 비교와 누적 생성을 구분해야 합니다.

2. 학습 목표​

3. 핵심 개념​

String 객체는 생성 뒤 내용이 바뀌지 않으며 메서드는 새 문자열을 반환합니다. ==는 참조 동일성, equals는 내용을 비교합니다. 반복해서 텍스트를 붙일 때 StringBuilder는 하나의 변경 가능한 버퍼를 사용합니다.

4. 단계별 실습​

1. src/TextReport.java 작성​

실행 환경: 코드 편집기

실행 위치: C:\dev\game-records

실행 전 확인: 같은 이름의 기존 파일이 있다면 덮어쓰기 전에 Git diff와 이번 강의 변경 범위를 확인합니다.

대상 파일: src/TextReport.java

src/TextReport.java
public class TextReport {
public static void main(String[] args) {
String rawPlayer = " Alice ";
String player = rawPlayer.trim();
if (player.isBlank()) throw new IllegalArgumentException("이름이 비었습니다.");

int[] scores = {900, 1200, 1050};
StringBuilder report = new StringBuilder("플레이어: ")
.append(player).append(System.lineSeparator());
for (int i = 0; i < scores.length; i++) {
report.append(i + 1).append("회: ").append(scores[i])
.append(System.lineSeparator());
}
System.out.print(report);
System.out.println("이름 일치: " + player.equals("Alice"));
}
}

2. PowerShell에서 컴파일·실행​

실행 환경: Windows PowerShell

실행 위치: C:\dev\game-records

실행 전 확인: java -version과 javac -version이 선택한 LTS JDK를 가리키고, 소스 파일명이 public 클래스명과 일치하는지 확인합니다.

대상: 이 강의의 .java 파일, out의 class 파일과 명시된 출력 파일

Windows PowerShell
Set-Location C:\dev\game-records
javac -d out .\src\TextReport.java
java -cp out TextReport

예상 결과: 공백이 정리된 플레이어 이름과 세 줄의 점수, 내용 비교 결과 true가 출력됩니다.

5. 코드가 동작하는 이유​

trim은 새 String을 반환하고 원본을 바꾸지 않습니다. StringBuilder append는 같은 버퍼를 갱신하며 System.lineSeparator는 현재 운영체제 줄바꿈을 사용합니다.

6. 자주 하는 실수와 해결법​

7. 직접 실습​

8. 이해 점검 질문 3개​

9. 핵심 요약​

MINI QUIZ

문자열과 StringBuilder: 텍스트 데이터를 안전하게 다루기 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“문자열과 StringBuilder: 텍스트 데이터를 안전하게 다루기” 실습을 안전하게 진행하기 위한 판단으로 가장 알맞은 것은 무엇인가요?
  2. 문제 2“문자열과 StringBuilder: 텍스트 데이터를 안전하게 다루기” 실습 중 ‘문자열 내용을 ==로 비교하기’ 상황을 발견했습니다. 본문과 일치하는 설명은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

10강. 문자열과 StringBuilder: 텍스트 데이터를 안전하게 다루기 미완료 상태