문제 설명
문자열 변수 str = "123"을 정수로 변환하여 출력하세요.
문제를 보고 난 자신있게 썼다.
public class Main {
public static void main(String[] args) {
String str = "123";
int a = (int) str;
System.out.println(a);
}
}
-> 오답
그리고 정답을 보니 감이 오는 게 있었다.
내가 아파서 하루 빠진 날 진도에 저 부분이 있었던 것 같았음.
내가 걱정돼서 자바 책 보면서 어디 진도 나갔는지 확인하고 조금 공부했는데, '내가 조금' 공부한 걸로는 내 지식이 안돼서 당연히 몰랐음.
시험범위에도 없어서 한번 더 보지도 않았고 그냥 감쌌다! 생각했음.
그게 이거였음..
어쨌든 내가 수업을 안 듣고 푼 문제니 틀린 게 당연했음.
문자열을 정수로 변환하는 방법과 래퍼 클래스를 빠르게 익히는 방법
문자열 → 정수 변환
public class StringToInt {
public static void main(String[] args) {
String str = "123";
// 방법 1: Integer.parseInt() - 가장 일반적
int num1 = Integer.parseInt(str);
System.out.println("parseInt: " + num1);
// 방법 2: Integer.valueOf() - Integer 객체 반환 후 자동 언박싱
int num2 = Integer.valueOf(str);
System.out.println("valueOf: " + num2);
// 방법 3: Integer 객체로 받기
Integer num3 = Integer.valueOf(str);
System.out.println("Integer 객체: " + num3);
}
}
래퍼 클래스 빠르게 익히는 방법
1. 핵심 패턴 암기
// 문자열 → 기본형 변환 패턴
int i = Integer.parseInt("123");
double d = Double.parseDouble("3.14");
boolean b = Boolean.parseBoolean("true");
long l = Long.parseLong("12345");
// 기본형 → 문자열 변환 패턴
String s1 = String.valueOf(123);
String s2 = Integer.toString(123);
2. 자주 쓰는 변환 정리표 만들기
| 변환 | 메서드 | 예시 |
|---|---|---|
| String → int | Integer.parseInt() |
Integer.parseInt("123") |
| String → double | Double.parseDouble() |
Double.parseDouble("3.14") |
| int → String | String.valueOf() |
String.valueOf(123) |
| int → String | Integer.toString() |
Integer.toString(123) |
3. 실습 위주 학습
public class TypeConversionPractice {
public static void main(String[] args) {
// 매일 이런 변환들을 연습해보세요
// 1. 문자열 숫자들을 실제 계산에 사용
String price1 = "1500";
String price2 = "2300";
int total = Integer.parseInt(price1) + Integer.parseInt(price2);
System.out.println("총 가격: " + total);
// 2. 계산 결과를 다시 문자열로
String result = String.valueOf(total);
System.out.println("결과 문자열: " + result);
// 3. 실수 계산
String height = "175.5";
String weight = "70.2";
double bmi = Double.parseDouble(weight) /
Math.pow(Double.parseDouble(height)/100, 2);
System.out.println("BMI: " + bmi);
}
}
4. 예외 처리도 함께 연습
public class SafeConversion {
public static void main(String[] args) {
String[] testStrings = {"123", "abc", "45.6", ""};
for (String str : testStrings) {
try {
int num = Integer.parseInt(str);
System.out.println(str + " → " + num);
} catch (NumberFormatException e) {
System.out.println(str + " → 변환 불가능");
}
}
}
}
6. 연습 문제
public class Practice {
public static void main(String[] args) {
// 1. "12,34,56"을 쉼표로 나누어 각각 정수로 변환 후 합계 구하기
// 2. 나이를 문자열로 입력받아 성인인지 판별하기
// 3. "3.14159"를 실수로 변환 후 소수점 둘째자리까지 출력
}
}
| 함수 | 리턴타입 | 예시 | 설명 |
|---|---|---|---|
| Integer.parseInt("123") | int | int a = Integer.parseInt("123"); | 문자열 → 기본형 int |
| Integer.valueOf("123") | Integer | Integer b = Integer.valueOf("123"); | 문자열 → Integer 객체 |
기본형과 래퍼 클래스
자바에는
int,double,char,boolean같은 **기본형(primitive type)**이 있고- 그걸 감싸는 **래퍼 클래스(wrapper class)**가 따로 있음.
| 기본형 | 래퍼 클래스 |
|---|---|
| int | Integer |
| double | Double |
| char | Character |
| ... | ... |
왜 래퍼 클래스가 필요해?
- 객체로 다루거나, 메소드(함수) 쓸 때 필요.
- 예를 들어, 문자열을 int로 바꾸고 싶으면
Integer.parseInt()처럼 메소드가 필요함.
문자열을 숫자로 변환
문자열 "123" → 숫자 123
이렇게 변환하려면
int a = Integer.parseInt("123"); // 결과: 123 (int 타입)이런 식으로 래퍼 클래스의 static 메소드 사용.
반대로 숫자를 문자열로 변환
숫자 123 → 문자열 "123"
String s = String.valueOf(123); // 결과: "123"'잡담' 카테고리의 다른 글
| 병원 가느라 학원에 빠졌는데 놀지는않았다. (0) | 2025.07.10 |
|---|---|
| JSP 개념 복습 문제 (0) | 2025.06.01 |
| 집에서 JSP 환경 구축했다 (0) | 2025.05.20 |
| 코드 채우기/작성 (0) | 2025.05.19 |
| 부분구역 캡쳐할 때 (0) | 2025.05.19 |