Java 숫자와 문자열 다루기
Java 숫자와 문자열 다루기
Java로 프로그램을 만들다 보면 숫자를 다루고 문자열을 자르거나 비교하는 일이 끊이지 않아요. 이 강의에서는 기본 타입과 함께 쓰는 Number 클래스와 그 하위 클래스들, 그리고 어디서나 쓰이는 String 클래스를 다뤄요.
숫자(Numbers)
기본 타입만으로 대부분의 숫자 연산이 가능하지만, 때로는 객체로 숫자를 다뤄야 할 때가 있어요. 그럴 때 쓰는 것이 java.lang 패키지의 Number 클래스와 그 하위 클래스들이에요.
예를 들어 컬렉션에는 기본 타입을 직접 담을 수 없어서 래퍼 클래스를 써야 해요. 기본 타입과 래퍼 클래스 사이를 자동으로 오가게 해 주는 기능이 **오토박싱(autoboxing)과 언박싱(unboxing)**이에요. 컴파일러가 알아서 변환해 주니까 코드가 훨씬 단순해져요.
Integer boxed = 42; // int -> Integer 오토박싱
int num = boxed; // Integer -> int 언박싱
숫자를 다루다 보면 포맷팅(모양을 정해서 출력)이나 수학 함수가 필요할 때도 있어요. 이 강의는 그런 상황에서 쓸 수 있는 보조 클래스도 함께 소개해요.
문자열(Strings)
Java에서 문자열은 널리 쓰이는 타입이고, 본질은 문자의 나열(sequence of characters)이에요. 그리고 Java에서 문자열은 객체예요. String 클래스로 문자열을 만들고 조작할 수 있어요.
String greeting = "Hello, world!";
int len = greeting.length();
String upper = greeting.toUpperCase();
문자열 작업이 많을 때 String은 불변이라 매번 새 객체를 만들어요. 그래서 문자열을 자주 이어 붙여야 한다면 StringBuilder를 쓰는 게 더 효율적이에요. 이 강의에서 String과 StringBuilder를 비교해 주니, 상황에 맞게 골라 쓰면 돼요.
핵심은 "숫자는 기본 타입과 래퍼 클래스를 오가는 방법을, 문자열은 String과 StringBuilder를 상황에 맞게" 기억하는 거예요. 둘 다 거의 모든 Java 프로그램에서 만나는 유비쿼터스한 도구예요.