Dev.J

[JAVA] 문제 1-2 대소문자 변환 본문

Solved

[JAVA] 문제 1-2 대소문자 변환

JJ____ 2021. 7. 15. 22:02

키보드에서 영문자 한자를 입력받아 소문자는 대문자로 , 대문자는 소문자로 변환하여 출력하는 프로그램.

 next() 와 charAt(int)메소드를 이용

 대문자 -> 소문자

 소문자 -> 대문자

 입력된 문자가 영문자가 아니면 "영문자가 아닙니다" 를 출력한다

 0 이 입력되면 프로그램을 종료

 

---

(i의 잘못된 사용, 메서드 사용시 범위 설정 오류 등으로 실행되지않음)

 

import java.util.*;
import java.lang.*;

public class Main
{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);

int i;
    int i2;
String a2;
String out = "";
boolean start = true;

System.out.println("문자를 입력하세요 : \n");
while(start){
    a2 = sc.next();
    i = sc.nextInt();
    i2 = a2.charAt(0);
    if(i != 0){
        if(i2 > 90){
            out = a2.toUpperCase();
        }
        else if(i2 < 97){
            out = a2.toLowerCase();
        }
    }
    else{
            start = false;
        }
System.out.println(out);
}
}
}

 

1차문제풀이_JJ

------------

 

0717 수정 후 정상 작동

 

import java.util.Scanner;

 

public class Main

{

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

 

int i; //i는 사용하지않음

int i2;

String a2;

String out = "";

boolean start = true;

 

while(start){

  System.out.print("문자를 입력하세요 : ");

  a2 = sc.next();

  //i = sc.nextInt();

  i2 = a2.charAt(0);

 

  if (i2 <= 122 && i2 >= 97) {

    out = a2.toUpperCase();

  }

  else if (i2 >= 65 && i2 <= 90) {

    out = a2.toLowerCase();

  }

  else if(i2 == 48) {

    start = false;

  }

  else

 

//i2 == 0 -> i2 == 48으로 수정. 이전에는 아스키코드로 숫자 0은 48이기 때문에 오류 발생. 

 

System.out.println("영문자가 아닙니다.\n"+a2);

System.out.println(out);

}

}

}

 

------------

 

if문에서 c>='a' && c<='z' 으로 character와 영문자 그대로 사용해 간단하게 풀어보기

728x90