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(3, 5)); | 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(3, 5)); //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