자바/자바 기본 라이브러리

Integer 클래스 및 파싱

Blue_bull 2025. 1. 15. 17:25
public class IntegerExam {
   public static void main(String[] args) {

      System.out.println("정수 최대 값 : " +Integer.MAX_VALUE);
      System.out.println("정수 최소 값 : " +Integer.MIN_VALUE);
      System.out.println("실수 최대 값 : " +Double.MAX_VALUE);
      System.out.println("실수 최소 값 : " +Double.MIN_VALUE);
      System.out.println("자료형 크기 : " +Integer.BYTES + "바이트");

      int i = 10;
      String stri = Integer.toString(i); //랩퍼클래스에는 대부분 toString메소드가 있다. 문자로 바꿀 수 있다.
      System.out.println("문자열 : " + stri);

      String binaryValue = Integer.toBinaryString(i);
      System.out.println("2진수 : " + binaryValue);

      String octalValue = Integer.toOctalString(i); //8진법
      System.out.println("8진수 : " + octalValue);

      String hexValue = Integer.toHexString(i); //16진법
      System.out.println("16진수 : " + hexValue);

      String _stock = "100"; //재고 수량
      int stock = Integer.parseInt(_stock); //파싱하여 문자열 100을 숫자 100으로 바꿈.
      System.out.println("재고 수량 : " + stock + "개");

      String _price = "350.5";
      double price = Double.parseDouble(_price); //파싱하여 문자열 100을 숫자 100으로 바꿈.
      System.out.println("단가 : " + price + "원");

      _stock = "200";
      stock = Integer.valueOf(_stock) + 100; //valueOf 메서드는 문자열(String)을 정수(Integer) 객체로 변환하는 메서드입니다.
      System.out.println("재고 수량 2 : " + stock + "개");

      price = 1234.56;
      String temp = String.valueOf(price) + "원";
      System.out.println("문자열 : " + temp);

      int su01 = 10, su02 = 20;
      System.out.println("큰 수 : " + Integer.max(su01, su02));
      System.out.println("작은 수 : " + Integer.min(su01, su02));
      System.out.println("합 수 : " + Integer.sum(su01, su02));

   }

}

1. parseInt()

(1) 문자열에 숫자를 더하면 문자열 결합이 일어난다.

  • 자바(Java)에서 문자열(String)과 숫자(int, double 등)를 더하면, 문자열 결합(String concatenation) 이 발생한다. 숫자가 자동으로 문자열로 변환되어 결합된다.

    String _stock = "100"; //재고 수량
    int stock = Integer.parseInt(_stock); //파싱하여 문자열 100을 숫자 100으로 바꿈.

    출력:

100

String _stock = "100"+5; //재고 수량
int stock = Integer.parseInt(_stock); //파싱하여 문자열 1005가 숫자 1005로 바뀜.

출력:

1005


(2) 문자열 "100"을 int타입으로 파싱하기.

String _stock = "100"; //재고 수량
int stock = Integer.parseInt(_stock); //문자열 "100"을 int 100으로 변환(파싱)한다.
System.out.println("재고 수량 : " + (stock+100) + "개"); //이렇게 더할 수도 있다.

출력:

재고 수량 : 200개


(3) 숫자로만 구성된 문자열만 int 타입으로 파싱할 수 있다(오류 발생).

String _stock = "100a"; //재고 수량
int stock = Integer.parseInt(_stock); //파싱하여 문자열 100을 숫자 100으로 바꿈.
System.out.println("재고 수량 : " + stock + "개");

출력 안 됨:

NumberFormatException 발생


2. valueOf()

_stock = "200";
stock = Integer.valueOf(_stock) + 100; //valueOf 메서드는 문자열(String)을 정수(Integer) 객체로 변환하는 메서드이다.
System.out.println("재고 수량 2 : " + stock + "개");

출력:

재고 수량 2 : 300개


  • valueOf메서드
    • 대부분의 랩퍼 클래스는 valueOf()메서드가 있다.
    • valueOf메서드는 스태틱 메서드이다.
    • valueOf는 String클래스에 속해 있다.

3. min(), max(), sum()

int su01 = 10, su02 = 20;
        System.out.println("큰 수 : " + Integer.max(su01, su02)); // 두 숫자 데이터 집합에서 최대값을 반환한다.
        System.out.println("작은 수 : " + Integer.min(su01, su02)); // 두 숫자 데이터 집합에서 최소값을 반환한다.
        System.out.println("합 수 : " + Integer.sum(su01, su02)); // 두 숫자 데이터 집합에서 한계를 계산하여 반환한다.

위의 코드에 사용된 Integer클래스의 메서드 정리.

메서드 역할 매개변수 타입 반환 타입 사용 방식
Integer.MAX_VALUE 정수형 자료형의 최대값 반환 없음 int Integer.MAX_VALUE
Integer.MIN_VALUE 정수형 자료형의 최소값 반환 없음 int Integer.MIN_VALUE
Integer.BYTES 정수형 자료형의 크기(바이트) 반환 없음 int Integer.BYTES
Integer.toString(int) 정수 값을 문자열로 변환 int String Integer.toString(10)
Integer.toBinaryString(int) 정수 값을 2진수 문자열로 변환 int String Integer.toBinaryString(10)
Integer.toOctalString(int) 정수 값을 8진수 문자열로 변환 int String Integer.toOctalString(10)
Integer.toHexString(int) 정수 값을 16진수 문자열로 변환 int String Integer.toHexString(10)
Integer.parseInt(String) 문자열을 정수로 변환 String int Integer.parseInt("100")
Integer.valueOf(String) 문자열을 Integer 객체로 변환 String Integer Integer.valueOf("100")
Double.parseDouble(String) 문자열을 실수(Double)로 변환 String double Double.parseDouble("350.5")
String.valueOf(double) 실수 값을 문자열로 변환 double String String.valueOf(1234.56)
Integer.max(int, int) 두 정수 중 최대값 반환 int, int int Integer.max(10, 20)
Integer.min(int, int) 두 정수 중 최소값 반환 int, int int Integer.min(10, 20)
Integer.sum(int, int) 두 정수의 합 반환 int, int int Integer.sum(10, 20)

파싱의 정의:

  • 파싱은 데이터를 특정 형식에서 다른 형식으로 변환하거나, 특정 형식을 분석해 유의미한 데이터를 추출하는 과정이다.
  • 예를 들어, "200"(문자열)을 200(정수)로 변환하는 것은 데이터를 다른 형식으로 바꾸는 작업이므로 파싱이다.

TMI

  • valueOf와 pase같이 비슷한 메소드들이 존재한다.
  • 웹 페이지에서는 모든 데이터가 문자로 넘어간다. 숫자도 문자로 넘어간다.

'자바 > 자바 기본 라이브러리' 카테고리의 다른 글

java.lang 패키지(암시적 import)  (0) 2025.01.15
String 클래스 예제  (0) 2025.01.15
Math 클래스  (0) 2025.01.14
String 클래스 메서드 예제  (0) 2025.01.14
Map컬렉션 출력하기  (0) 2025.01.13