공부했던 자료 정리하는 용도입니다.

재배포, 수정하지 마세요.

 

 

 

 


입력받은 문자열중 대문자는 소문자로, 소문자는 대문자로 변환하기

ASCII코드표에서 소문자 97 ~ 122 와 대문자 65 ~ 90  32 만큼 차이가 나는 것(숫자는  48 ~ 57 ) 이용한다.   Scanner 로 문자열을 입력받고  tmp 에 한 글자씩 담아서 검사한다. 검사한 결과가 대문자면 소문자로, 소문자면 대문자로 바꾼다. 관련된 내장 함수에는  toUpperCase( ) toLowerCase( )가 있다.

 

 toUpperCase( )  : 문자열을 모두 대문자로 변환해준다.

 toLowerCase( )  : 문자열을 모두 소문자로 변환해준다.

 

 

결과값


1. 내장 함수 사용하지 않는 경우

대문자에서  32 를 더하면 소문자가 되고, 소문자에서  32 를 빼면 대문자가 되는 것을 이용한다. 

package test;
import java.util.*;

class test{
	public static void main(String[] args) {
	
		String input = "";	//입력받은 문자열을 저장할 input 선언
		String output = "";	//최종적으로 출력할 문자열을 저장하는 output 선언
		int tmp;
		
		Scanner scanner = new Scanner(System.in);
		
		System.out.print("문자열을 입력하세요 : ");
		input = scanner.nextLine();	//입력받은 문자열을 input에 저장
		
		for(int i = 0 ; i < input.length() ; i++) {	//문자열을 검사하기 위해서 input의 길이만큼 반복문 실행(한글자씩 tmp에 옮겨서 검사)
			
			tmp = (int)input.charAt(i);	//문자열은 아스키코드(숫자)로 저장되기 때문에 int형으로 변환.
			
			if( (65 <= tmp) && (tmp <= 90) ) {	//문자가 65 <= tmp <= 90인 경우 (대문자인 경우)
			
				output += (char)(tmp + 32);	//32를 더해서 소문자로 변환
			
			}else if( (97 <= tmp) && (tmp <= 122)) { //문자가 97 <= tmp <= 122인 경우 (소문자인 경우)
				
				output += (char)(tmp - 32);	//32를 빼서 대문자로 변환
                
			}else {	//그 외의 문자열인 경우
				
				output += (char)tmp;	//그대로 출력
						
			}
		}
		
		System.out.println("변환된 문자열 : " + output);		// 최종적으로 변환한 글자열인 output을 출력
		
	}	
}

 

 

 

2. 내장함수 사용하는 경우(toUpperCase( ), toLowerCase( ))

두 함수는 문자열 전체를 일괄적으로 바꿔주기 때문에 한 글자씩 변환해서 바꿔야 각각의 글자를 다르게 바꿀 수 있다. 첫 번째 방법과 비슷하지만  tmp 의 자료형을  int 형에서  char 형으로 바꿨다.

package test;
import java.util.*;

class test{
	public static void main(String[] args) {
	
		String input = "";	//입력받은 문자열을 저장할 input 선언
		String output = "";	//최종적으로 출력할 문자열을 저장하는 output 선언
		char tmp;
		
		Scanner scanner = new Scanner(System.in);
		
		System.out.print("문자열을 입력하세요 : ");
		input = scanner.nextLine();	//입력받은 문자열을 input에 저장
		
		for(int i = 0 ; i < input.length() ; i++) {	//문자열을 검사하기 위해서 input의 길이만큼 반복문 실행(한글자씩 tmp에 옮겨서 검사)
			
			tmp = input.charAt(i);	//문자열을 한글자씩 tmp에 넣는다.
			
			if( (65 <= tmp) && (tmp <= 90) ) {	//문자가 65 <= tmp <= 90인 경우 (대문자인 경우)
			
				output += input.valueOf(tmp).toLowerCase();	//내장함수를 이용해서 소문자로 변환
			
			}else if( (97 <= tmp) && (tmp <= 122)) { //문자가 97 <= tmp <= 122인 경우 (소문자인 경우)
				
				output += input.valueOf(tmp).toUpperCase();	//내장함수를 이용해서 대문자로 변환
				
			}else {	//그 외의 문자열인 경우
				
				output += (char)tmp;	//그대로 넣는다.
						
			}
		}
		
		System.out.println("변환된 문자열 : " + output);		// 최종적으로 변환한 글자열인 output을 출력
		
	}	
}

 

 

+ Recent posts