관심쟁이 영호

JAVA - String to int ㅣ 문자열 -> 정수 ㅣ ParseInt 본문

학교공부/자바의 왕!

JAVA - String to int ㅣ 문자열 -> 정수 ㅣ ParseInt

관심쟁이 영호 2020. 11. 30. 01:30
반응형

안녕하세요!

관심쟁이 영호입니다.

 

오늘 함께 공부해볼 내용은

자바입니다.

 


문자열을 정수형으로 바꾸기 위해서는 여러 조건이 있어야 해요!

 

조건

1. 문자열은 "123123"과 같이 정수형의 문자로만 이루어져 있어야 한다.

 

2. "abjdmf가나-+!!123"과 같은 문자열을 정수형으로 바꾸는 것은 불가능하다.

 

3. "abjdmf가나-+!!123"을 정수형으로 바꾸기 위해서는 한 문자씩 꺼내어 아스키, 유니 등등 코드로 변환하는 방법이 있다.

 

 

1. 문자열은 "123123"과 같이 정수형의 문자로만 이루어져 있어야 한다.

 

이러한 조건에는 사용하는 함수가 있어요!

 

그 함수는 

Integer.ParseInt() 입니다!

 

사용방법은 코드로 바로 살펴볼게요.

 

 


public class Test {

	public static void main(String[] args) {
	
		
		String str = "123123"; // 문자열의 123123지정
        
		int str_to_int_a; // 문자열을 정수로 바꾼다음 담을 변수
        
		str_to_int_a = Integer.parseInt(str); // String -> int 변환작업
		
		System.out.println("str_to_int_a = " + str_to_int_a); // 변환후 출력
		
		System.out.println("str_to_int_a - 10 = " + (str_to_int_a - 10)); // 정수형이 맞는지 10을 뺀 후 출력
		
	}
}

이렇게 해서 결과는!

이렇게 나왔네요!

10을 빼준 이유는 정수형이 아니라면 10이 마이너스 연산이 되는 것이 안 되겠죠!?

 

그럼 이 방법을 "abjdmf가나-+!!123" 문자열로 바꾼 다음에 똑같이 해볼게요!

이러한 에러가 뜨네요..

이유는 해당 함수에서 지원하는 형식에 맞지 않는 겁니다!

 

 

2. 문자 + 숫자 형태로 되어있는 문자열 변환하기!

 

"abjdmf가나-+!!123"를 예시로 써볼게요!

이러한 문자열을 숫자로 변환하는 경우는 문자열끼리 사전 순으로 정렬을 하고 싶을 때 사용을 많이 하게 되는 경우입니다. 

이 문자열을 정수로 바꾸고 싶으면 

한 문자씩 꺼내서 그 문자만 변환해주는 방식으로 해야 해요!

 

이때 사용하는 함수는

charAt(); 입니다!

 

사용방법은

charAt(Index number)

문자열을 배열처럼 0, 1, 2, 3자리로 나타낸다음 한 문자만 꺼내는 겁니다!

 

예를 들어서 위의 문자열 "abjdmf가나-+!!123" 같은 경우에

charAt(3)을 하게 되면 'd'라는 문자가 튀어나오게 됩니다!

 

그럼 코드로 어떻게 사용하는지 살펴볼게요!

 


public class Test {

	public static void main(String[] args) {
	
		
		String str = "abjdmf가나-+!!123";
		int str_to_int_a;
		
		for (int i = 0; i < str.length(); i++) {
			
			char str_temp = str.charAt(i);
			str_to_int_a = (int)(str_temp);
			
			System.out.println("charAt를 이용하여 한 글자씩 꺼내보기 "+ i +"번째 요소 꺼내기 = " + str.charAt(i));
			System.out.println(i + "번째 요소 꺼낸다음 int로 캐스팅 한 값! = " +str_to_int_a);
			
			System.out.println("");
		}
		
		
		
	}
}

결과는!

이렇게 볼 수 있어요.

한 글자씩 꺼내서 정수로 변환해 주기!

 

오늘은 여기까지.

 

300x250
Comments