문제 설명
=> 문자열을 입력받고, 입력받은 문자열을 int형으로 변환
=> int형으로 변환된 내용을 다시 String형으로 변환
코드 작성 방식
1. 사용자에게 정수형태 문자열을 입력 받음
2. 입력받은 문자열을 strToInt 메소드에 반환
3. 문자열을 char형 배열에 나누어 입력
4. 잘못된 값이 입력되었는지 확인하고, 정수형태라면 정수로 변환
5. char형 배열의 크기만큼 4번 과정을 반복하며 계산
-> for( ; ; x) 형태에서 x의 위치에 2개의 증감식을 입력하는 것도 가능
6. 결과값 리턴 및 출력
7. 위의 결과값을 매개변수로 intToStr메소드 호출
8. 매개변수를 10으로 나눈 나머지를 구하고 문자열 변수에 더하고, 매개변수를 10으로 나눔
9. 매개변수가 0보다 클경우 8번의 과정을 반복 수행
-> result = result + (nNum%10) 의 경우 1의자리 숫자가 앞쪽에 위치하게 됨(역방향)
-> result = (nNum%10) + result 의 경우 1의자리 숫자가 뒷쪽에 위치하게 됨(정방향)
10. 결과값 반환 및 출력
메소드 설명
=> main : 문자열을 입력받고, 값을 strToInt, intToStr 메서드에 전달 및 결과 출력
=> strToInt : 문자열을 매개변수로 받고, 해당 문자열을 정수형으로 반환
=> intToStr : 정수형을 매개변수로 받고, 해당 정수형을 문자열로 반환
소스코드
//1. String 형으로 입력받고, int형으로 변환
//2. int 형으로 입력받고, String형으로 변환
public class main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("숫자를 입력하시오 : ");
String strNum = sc.nextLine();
sc.close();
//입력받은 문자열을 정수형으로 변환
int toInt = strToInt(strNum);
System.out.println(toInt);
//변환한 정수를 문자열로 재변환
String toStr = intToStr(toInt);
System.out.println(toStr);
}
private static int strToInt(String strNum) {
int result = 0;
char[] cTemp = strNum.toCharArray();
for (int i = 0; i < cTemp.length; i += 1, result *= 10) {
//숫자가 아닌 값이 입력되었을 경우의 예외처리
if (cTemp[i] < 48 || cTemp[i] > 57) {
System.out.println("잘못된 입력입니다");
return 0;
}
result += (int) (cTemp[i] - 48);
}
result /= 10;
return result;
}
private static String intToStr(int nNum) {
String result = "";
while(nNum > 0) {
result = (nNum%10) + result;
nNum /= 10;
}
return result;
}
}
'Programming > Programming 알고리즘 연습' 카테고리의 다른 글
[Kotlin] 이진법 변환 (0) | 2023.07.19 |
---|---|
Stack 직접 구현하기(Java) (0) | 2021.01.05 |
피보나치 수열(재귀O) (0) | 2020.07.29 |
피보나치 수열(재귀X) (0) | 2020.07.28 |
진법 변환(2, 8, 16진수) (0) | 2020.07.15 |