본문 바로가기

Java

자바 Integer 클래스의 메소드

Integer 클래스의 메소드

Integer 클래스는 Java.lang에 속하는 클래스로, 원시적 형(primitive type) int의 값을 객체에 wrap 한다 . 
Integer 유형의 오브젝트에는 유형이 int 인 단일 필드가 들어 있다.
자주 쓰이는 메소드를 소개한다.

Integer.parseInt(String s) :

String to int. 문자열을 int형으로 변환한다. 어쩌면 Integer에서 가장 많이 쓰이는 메소드
1
2
String str = "123";
int num = Integer.parseInt(str);
cs

.toString(int i):

int to String. 반대로 int를 String으로 변환한다.
1
2
int num1 = 123;
String str1 = Integer.toString(num1);
cs

.toBinarayString(int i):>

10진수를 2진수로 변환해 String으로 리턴한다.
int를 String으로 변환해 toCharArray()charAt()으로 찢고, 하나씩 빼는 방법도 있지만,
그런 과정을 생략할 수 있어 편리하다.
다만 음수는 제대로 작동하지 않는 것 같아 보인다. 
1
2
String str2 = Integer.toBinaryString(num);
System.out.println("2진수: "+str2);
cs
  
>> 2진수: 1111011

toOctalString(int i)

10진수->8진수. 이하 설명은 생략한다.
1
2
String str3 = Integer.toOctalString(num);
System.out.println("8진수: "+str3);
cs
            
>> 8진수: 173

.toHexString(int i) :

10진수->16진수.
1
2
String str4 = Integer.toHexString(num);
System.out.println("16진수: "+str4);
cs

>> 16진수: 7b

.parseInt(String s, int radix) :

parseInt()를 이용하여, 2진수를 10진수로 변환할수도 있다.
1
2
int temp = Integer.parseInt(str2, 2);
System.out.println("2진수->10진수: "+temp);
cs
            
>> 2진수->10진수: 123

같은 방법으로 8진수->10진수 또한 가능하다.
1
System.out.println("8진수->10진수: "+Integer.parseInt(str3, 8));
cs
           
>> 8진수->10진수: 123

.max(int a, int b) :

둘 중 큰 수를 반환한다. 
인자를 받아 큰 수와 작은 수를 구별해 처리해야 할 때 유용하다.
min(int a, int b)도 가능하다.
1
System.out.println("더 큰 수 : "+ Integer.max(35));
cs

>> 더 큰 수 : 5

.bitCount(int i) :

해당 숫자(i)를 2진수로 변환한 후, 1의 개수를 알아서 구해준다.
예를 들어 123 을 2진수로 변환하면 1111011인데 그럼 6개가 나오게 된다.
1
System.out.println("2진수의 1 개수 : "+ Integer.bitCount(num1));
cs

>> 2진수의 1 개수 : 6

다음은 포스팅에 사용한 코드 전문.

Integer_.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
public class Integer_ {
      public static void main(String[] args) {
            //String to Int
            String str = "123";
            int num = Integer.parseInt(str);
            //int to String
            int num1 = 123;
            String str1 = Integer.toString(num1);
            
            //10진수 ->2진수
            String str2 = Integer.toBinaryString(num);
            System.out.println("2진수: "+str2);
            
            //10진수->8진수
            String str3 = Integer.toOctalString(num);
            System.out.println("8진수: "+str3);
            
            //10진수->16진수
            String str4 = Integer.toHexString(num);
            System.out.println("8진수: "+str4);
            
            //2진수->10진수
            int temp = Integer.parseInt(str2, 2);
            System.out.println("2진수->10진수: "+temp);
            
            //8진수->10진수
            System.out.println("8진수->10진수: "+Integer.parseInt(str3, 8));
            
            //둘 중 큰 수 반환 (min도 가능)
            System.out.println("더 큰 수 : "+ Integer.max(35));
            
            //2진수의 1 개수
            System.out.println("2진수의 1 개수 : "+ Integer.bitCount(num1));
            
            
      }
}
cs

2진수: 1111011
8진수: 173
8진수: 7b
2진수->10진수: 123
8진수->10진수: 123
더 큰 수 : 5
2진수의 1 개수 : 6