반응형
회사에서 일하다가 놓치기 쉬운점인것같아 간단하게 정리해본다
문자열비교는 아걍 포함되면 true겠지했는데 생각해보면 당연한거지만 그래도 놓치기 쉽지않을까? 해서 정리해본다
사람의 직관으로는 '사회(역사/도덕포함)'이 결국 '사회' 과목의 한 종류니까 당연히 의미상 포함(true)된다고 생각하게 되죠.
하지만 자바(Java)의 컴퓨터는 사람처럼 '개념'이나 '의미'로 포함 여부를 판단하지 않고, 물리적인 글자의 크기(길이)와 순서만 봅니다.
class Main {
public static void main(String[] args) {
String shortText = "사회"; // 작은 상자 (2글자)
String longText = "사회(역사/도덕포함)"; // 큰 물건 (11글자)
System.out.println("=== 1. 기존 코드 방식 (오류 발생) ===");
// 의도: "사회"라는 카테고리 안에 "사회(역사/...)"가 포함되는가?
// 실제 컴퓨터의 처리: "사회"라는 2글자 안에 11글자가 다 들어가는가?
boolean result1 = shortText.contains(longText);
System.out.println("결과: " + result1); // false 출력
System.out.println("\n=== 2. 뒤집은 방식 (정상 작동) ===");
// 컴퓨터의 처리: "사회(역사/...)"라는 11글자 안에 "사회"라는 2글자가 포함되어 있는가?
boolean result2 = longText.contains(shortText);
System.out.println("결과: " + result2); // true 출력
}
}
반응형
'개발유용한것모음 > Java' 카테고리의 다른 글
| Spring Batch 5.0 - 배치 작업의 기본, 파일 읽기와 쓰기 (0) | 2026.02.19 |
|---|---|
| Spring Batch 5.0 DB데이터 이관하기 (DB데이터 읽고 다시 쓰기) - 2 (0) | 2026.02.03 |
| Spring Batch 5.0 DB데이터 이관하기 (DB데이터 읽고 다시 쓰기) - 1 (0) | 2026.02.02 |
| 배치 작업 실행 전, 후 로그 추가를 위한 리스너 JobLoggerListener JobListenerJobConfig - Spring Batch 5.0 (0) | 2026.01.26 |
| Spring 배치 실행시 파라미터 (파일이름) 받기 및 (csv) 검증 (0) | 2026.01.23 |