JAVA/풀어봅시다 (eclipse)

[JAVA] 사용 가능한 변수 이름은?

샛별KIM 2021. 5. 28. 17:17
import java.util.Arrays;
import java.util.Scanner;

//사용자가 입력 "가나다abc12@#$" --->abc12
//자바가 사용할 수 있는 변수로 변경하기
//영어 대문자, 소문자, 숫자, _, &

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

		System.out.println("사용할 문장을 입력하세요.");
		String sInput = sc.next();

		System.out.println("사용 가능한 문자는 : " + camel(sInput));
		sc.close();
	}
    
    public static String camel(String str) {
		String result = "";
		String nope = "";
		char[] temp = str.toCharArray(); 
		//받은 input값을 임의로 저장
		
		for (int i = 0; i < temp.length; i++) {
			if (Character.isDigit(temp[i])) {
				System.out.println("숫자로 시작할 수 없습니다.");
				temp[i] = '@'; //0~문자 까지가 숫자면 @로 변경
			} else {
				break;
			}
		}
		System.out.println(Arrays.toString(temp));
		String sInput = new String(temp);
		//숫자시작을 뺀 배열을 string으로 저장

		for (int i = 0; i < sInput.length(); i++) {
			if (Character.isUpperCase(sInput.charAt(i)) || Character.isLowerCase(sInput.charAt(i))
					|| Character.isDigit(sInput.charAt(i))) {
				result += sInput.charAt(i);

			} else if (sInput.charAt(i) == '_' || sInput.charAt(i) == '&') {
				result += sInput.charAt(i);

			} else {
				nope += sInput.charAt(i);
			}
		}
		if (!nope.equals("")) {
			System.out.println("다음 문자는 사용할 수 없습니다 : " + nope);
		}
		return result;
	}
}

//////출력

사용할 문장을 입력하세요.
(123Hi~&Hello!!나는해뽀이3) //입력
숫자로 시작할 수 없습니다.
숫자로 시작할 수 없습니다.
숫자로 시작할 수 없습니다.
[@, @, @, H, i, ~, &, H, e, l, l, o, !, !, 나, 는, 해, 뽀, 이, 3]
다음 문자는 사용할 수 없습니다 : @@@~!!나는해뽀이
사용 가능한 문자는 : Hi&Hello3