-
Java에서 문자열과 숫자 간 변환: 쉽게 이해하기(부록 문자열 함수소개)☕Java 2024. 12. 16. 17:06728x90
프로그래밍을 하다 보면 문자열(String)과 숫자(int, double 등) 사이의 변환이 필요한 경우가 많습니다. 예를 들어, 사용자로부터 입력받은 숫자는 문자열 형태로 저장되기 때문에 계산을 하려면 숫자로 변환해야 합니다. 반대로, 계산 결과를 화면에 출력하거나 파일에 저장할 때는 문자열로 변환해야 합니다. 이번 글에서는 자바에서 문자열과 숫자 간의 변환 방법을 쉽고 명확하게 설명드리겠습니다.
1. 문자열을 숫자로 변환하기
자바에서 문자열을 숫자로 변환하는 방법은 여러 가지가 있습니다. 대표적인 방법은 Integer.parseInt()와 Double.parseDouble() 메서드를 사용하는 것입니다.
- Integer.parseInt(String s): 문자열 s를 int형 정수로 변환합니다.
- Double.parseDouble(String s): 문자열 s를 double형 실수로 변환합니다.
아래는 간단한 예제 코드입니다.
public class StringToNumber { public static void main(String[] args) { String strNum1 = "123"; String strNum2 = "3.14"; try { int num1 = Integer.parseInt(strNum1); double num2 = Double.parseDouble(strNum2); System.out.println("num1: " + num1); // 출력: num1: 123 System.out.println("num2: " + num2); // 출력: num2: 3.14 int sum = num1 + (int)num2; System.out.println("sum: " + sum); // 출력: sum: 126 } catch (NumberFormatException e) { System.out.println("변환 오류: 올바른 숫자 형식이 아닙니다."); } } }
주의 사항:
- Integer.parseInt() 또는 Double.parseDouble() 메서드는 문자열이 숫자로 변환될 수 없는 형식이면 NumberFormatException 예외를 발생시킵니다. 따라서 try-catch 블록을 사용하여 예외 처리를 해주는 것이 좋습니다.
- 문자열에 공백이 포함되어 있는 경우, trim() 메서드를 사용하여 공백을 제거한 후 변환하는 것이 좋습니다. (예: Integer.parseInt(strNum1.trim()))
- Long.parseLong(), Float.parseFloat() 와 같이 다른 숫자 타입으로 변환하는 메서드도 존재합니다.
다른 방법들:
- Integer.valueOf(String s): Integer 객체를 반환합니다. int 값을 얻으려면 intValue() 메서드를 호출해야 합니다. (예: Integer.valueOf(strNum1).intValue())
- 이외에도 Scanner 클래스 등을 활용하는 방법이 있습니다.
2. 숫자를 문자열로 변환하기
숫자를 문자열로 변환하는 방법은 여러 가지가 있지만, 가장 일반적으로 사용되는 방법은 String.valueOf() 메서드를 사용하는 것입니다.
- String.valueOf(int i): 정수 i를 문자열로 변환합니다.
- String.valueOf(double d): 실수 d를 문자열로 변환합니다.
아래는 예제 코드입니다.
public class NumberToString { public static void main(String[] args) { int num1 = 123; double num2 = 3.14159; String strNum1 = String.valueOf(num1); String strNum2 = String.valueOf(num2); System.out.println("strNum1: " + strNum1); // 출력: strNum1: 123 System.out.println("strNum2: " + strNum2); // 출력: strNum2: 3.14159 String message = "num1은 " + strNum1 + "입니다."; System.out.println(message); // 출력: num1은 123입니다. } }
다른 방법들:
- Integer.toString(int i), Double.toString(double d): 각 숫자 타입의 래퍼 클래스에서 제공하는 toString() 메서드를 사용할 수 있습니다.
- String.format(): 형식을 지정하여 문자열로 변환할 수 있습니다. (예: String.format("%.2f", num2)는 num2를 소수점 두 자리까지 표시하는 문자열로 변환합니다.)
- + 연산자 이용: 숫자와 문자열을 + 연산자로 연결하면 숫자가 자동으로 문자열로 변환됩니다. (예: "숫자: " + 123)
요약
변환 방향방법주의 사항문자열 → 숫자 Integer.parseInt(), Double.parseDouble() NumberFormatException 처리 필요, 공백 제거 숫자 → 문자열 String.valueOf() public class Main { public static void main(String[] args) { // 문자열 생성하는 방법 2가지 방법이 있다 String str1 = "hello"; String srt2 = new String("Hello"); System.out.println(str1+srt2); // 정수 생성하는 방법 int num1 = 5; Integer num2 = 5; float num3 = 3.14f; Float num4 = 3.15f; double num5 = 3.2; Double num6 = 4.5; // 문자열을 숫자로 변경하는 방법 String str3 = "317"; System.out.println(str3+100); // 숫자로 변경하는 첫번째 방법 int newNumber =Integer.valueOf(str3).intValue(); System.out.println(newNumber+100); // 숫자로 변경하는 두번째 방법 int num10 = Integer.parseInt(str3); System.out.println(num10+200); //실수로 변경 하는 방법 double newnum1 = Double.parseDouble(str3); // 숫자를 문자열로 변경 하는 방법 int k = 365; String s = "" + k ; System.out.println(s + "hi"); } }
1. 문자열 길이: length()
length() 함수는 문자열의 길이를 반환합니다. 즉, 문자열에 포함된 문자의 개수를 알려줍니다.
String str = "Hello, World!"; int len = str.length(); // len은 13이 됩니다. System.out.println(len); // 출력: 13
2. 특정 위치의 문자 얻기: charAt(int index)
charAt(index) 함수는 주어진 인덱스(index)에 위치한 문자를 반환합니다. 인덱스는 0부터 시작합니다.
String str = "Apple"; char ch = str.charAt(0); // ch는 'A'가 됩니다. System.out.println(ch); // 출력: A
3. 문자열 비교: equals(Object anObject)
equals(anObject) 함수는 두 문자열의 내용이 같은지 비교합니다. 대소문자를 구분하여 비교하며, 내용이 같으면 true, 다르면 false를 반환합니다.
String str1 = "Java"; String str2 = "java"; boolean isEqual = str1.equals(str2); // isEqual은 false입니다. boolean isEqualIgnoreCase = str1.equalsIgnoreCase(str2); // isEqualIgnoreCase는 true입니다. (대소문자 무시 비교) System.out.println(isEqual); // 출력: false System.out.println(isEqualIgnoreCase); // 출력: true
4. 문자열 연결: concat(String str) 또는 + 연산자
concat(str) 함수 또는 + 연산자를 사용하여 두 문자열을 연결할 수 있습니다.
String str1 = "Hello"; String str2 = "World"; String result1 = str1.concat(str2); // result1은 "HelloWorld"가 됩니다. String result2 = str1 + " " + str2; // result2는 "Hello World"가 됩니다. System.out.println(result1); // 출력: HelloWorld System.out.println(result2); // 출력: Hello World
5. 부분 문자열 추출: substring(int beginIndex), substring(int beginIndex, int endIndex)
substring() 함수는 문자열의 일부분을 추출하여 새로운 문자열로 반환합니다.
- substring(beginIndex): beginIndex부터 문자열의 끝까지 추출합니다.
- substring(beginIndex, endIndex): beginIndex부터 endIndex - 1까지 추출합니다.
String str = "Programming"; String sub1 = str.substring(3); // sub1은 "gramming"이 됩니다. String sub2 = str.substring(0, 4); // sub2는 "Prog"가 됩니다. System.out.println(sub1); // 출력: gramming System.out.println(sub2); // 출력: Prog
6. 문자열 내 특정 문자(열)의 위치 찾기: indexOf(String str), lastIndexOf(String str)
indexOf(str) 함수는 문자열 내에서 특정 문자 또는 문자열이 처음으로 나타나는 위치의 인덱스를 반환합니다. 찾지 못하면 -1을 반환합니다. lastIndexOf(str) 함수는 마지막으로 나타나는 위치의 인덱스를 반환합니다.
String str = "banana"; int index1 = str.indexOf('a'); // index1은 1입니다. int index2 = str.lastIndexOf('a'); // index2는 5입니다. int index3 = str.indexOf("ban"); // index3은 0입니다. int index4 = str.indexOf("grape"); // index4는 -1입니다. System.out.println(index1); // 출력: 1 System.out.println(index2); // 출력: 5 System.out.println(index3); // 출력: 0 System.out.println(index4); // 출력: -1
7. 문자열 치환: replace(CharSequence target, CharSequence replacement)
replace() 함수는 문자열 내의 특정 문자 또는 문자열을 다른 문자 또는 문자열로 치환합니다.
String str = "apple pie"; String replacedStr = str.replace("pie", "juice"); // replacedStr은 "apple juice"가 됩니다. System.out.println(replacedStr); // 출력: apple juice
8. 문자열 분리: split(String regex)
split() 함수는 주어진 정규 표현식(regex)을 기준으로 문자열을 분리하여 문자열 배열로 반환합니다.
String str = "apple,banana,orange"; String[] fruits = str.split(","); // fruits는 {"apple", "banana", "orange"}가 됩니다. for (String fruit : fruits) { System.out.println(fruit); } // 출력: // apple // banana // orange
9. 대소문자 변환: toUpperCase(), toLowerCase()
toUpperCase() 함수는 문자열을 모두 대문자로 변환하고, toLowerCase() 함수는 모두 소문자로 변환합니다.
String str = "Hello"; String upper = str.toUpperCase(); // upper는 "HELLO"가 됩니다. String lower = str.toLowerCase(); // lower는 "hello"가 됩니다. System.out.println(upper); // 출력: HELLO System.out.println(lower); // 출력: hello
10. 공백 제거: trim()
trim() 함수는 문자열의 앞뒤 공백을 제거합니다.
String str = " Hello World "; String trimmedStr = str.trim(); // trimmedStr은 "Hello World"가 됩니다. System.out.println(trimmedStr); // 출력: Hello World
// 문자열의 함수들 소개.( 중요!! "문자열의" 의 가 중요) // concat 함수 String str1 = "가나 초콜릿이 얼마나~맛있게요~"; String str2 = "나"; System.out.println(str1.concat(str2)); // 문자열의 갯수를 구하는 함수 length() System.out.println(str1.length()); // 문자열을 슬라이싱 하는 함수 substring() System.out.println(str1.substring(5));
728x90'☕Java' 카테고리의 다른 글
컨트롤러: 웹 서비스의 친절한 안내자 ( Controller 클래스 Java 개발 ) (0) 2024.12.29 Java [ ArrayList 와 HashMap ] (0) 2024.12.17 Java 추상(Abstract) 클래스와 인터페이스(Interface): 개념 잡고 활용하기 (0) 2024.12.16 Java 상속이란? + 문제풀이 (1) 2024.12.15 자바 초보자를 위한 Constructor (생성자) 활용법 – 주소록 프로그램 만들기 (0) 2024.12.11