본문 바로가기

인프런 스터디/예제로 공부하는 Java 100 문제풀이 Part.1

자료형, 연산자 - 17: 정수형, 문자열, int, String, 자릿수

정수형을 문자열로 문자열을 정수형으로 변환

 

정수형(int)을 문자열(String)로 변환하여 정수의 자릿수를 구하는 코드

 

[!]: 바꾸는 이유?

정수형끼리의 연산이 아닌 경우 더하기 연산 등을 수행했을 때 문자가 합쳐지는 결과가 나올 수 있기 때문.

연산 외에도 메서드 호출 시 인자값을 정수로 보내서 문자열로 처리하는 또는 반환하는 경우에도 필요.

 

변화하는 방법은 여러가지가 있다. 

 

String.valueOf() ↔ Integer.valueOf()

public class Java100_type_IntString{
	public static void main(String[] args){
    
    	
        // [1]: 정수 선언
        int a = 12345;
        String str = "12345";
        // System.out.println(a.length());     //Err
        System.out.println("[1]-->"+str.length());      //5
        
        // [2]: 정수 --> 문자열로 변환 --> 자릿수 구하기
        String stra = String.valueOf(a);
        System.out.println("[2]-->"+stra);              //5
        
        
        // [3]: 문자열 + 정수형 = ?
        System.out.println("[3]-->"+12345+1);           //12346
        System.out.println("[3]-->"+str+1);             //12345+1=123451
        
        // [4]: 문자열 --> 정수로 변환
        int b = Integer.valueOf(str);
        System.out.println("[4]-->"+b+1);               //12346
        
        
 	}       
}

[결과 출력]

[1] --> 5

[2] --> 5

[3] --> 123451

[3] --> 123451

[4] --> 123451

 

예상과 다른 결과가 나왔다. 출력할 때 순차적으로 실행돼서 문자열이 순서대로 계산이 되었다. 따라서 괄호로 묶어서 먼저 계산해야 할 문자열을 묶어준다. 

 

public class Java100_type_IntString{
	public static void main(String[] args){
    
    	
        // [1]: 정수 선언
        int a = 12345;
        String str = "12345";
        // System.out.println(a.length());     //Err
        System.out.println("[1]-->"+str.length());      //5
        
        // [2]: 정수 --> 문자열로 변환 --> 자릿수 구하기
        String stra = String.valueOf(a);
        System.out.println("[2]-->"+stra);              //5
        
        
        // [3]: 문자열 + 정수형 = ?
        System.out.println("[3]-->"+(12345+1));           //12346
        System.out.println("[3]-->"+(str+1));             //12345+1=123451
        
        // [4]: 문자열 --> 정수로 변환
        int b = Integer.valueOf(str);
        System.out.println("[4]-->"+(b+1));               //12346
        
        
 	}       
}

[결과 출력]

[1] --> 5

[2] --> 5

[3] --> 12346

[3] --> 123451

[4] --> 12346