String 타입을 char 타입으로 변환할 때 사용한다. (문자열에서 원하는 문자 하나만 가져오고 싶을 때)
char는 한 글자만 저장할 수 있는 문자 타입이다.
CahrAt()은 String 문자열 중 한 글자만 선택해서 Char타입으로 변환해준다.
-> 그 덕분에 Scanner에서 Char를 사용할 수가 있다.(Scanner는 Char타입으로 입력을 받을 수 없다-> 문자 하나만 입력하는 경우가 드물기 때문이다)
1)String타입의 참조변수 뒤에 붙여서 사용하기
String str = new String();
str = "안녕하세요";
System.out.println(str);
for(int i = 0; i<str.length(); i++) {
System.out.print(str.charAt(i));
}
//charAt은 문자열 처음부터의 인덱스를 받아오기 때문에 원하는 문자만 가져올 수 있다.
//charAt(0) = 안, charAt(1) = 녕, ...
2) Scanner에서 사용하기
Scanner sc = new Scanner(System.in);
char c1 = sc.nextLine().charAt(0);
//charAt이므로 char타입 변수에 담아준다.
char c2 = sc.next().charAt(1);
System.out.println(c1);
System.out.println(c2);
3) charAt으로 공백을 없애거나(char ch = charAt(i); if(ch != " ")일시 문자열 추가 ) 하나하나 비교해서 소문자, 대문자, 숫자, 특문 등을 판별해낼 수 있다
int upper_cnt =0, lower_cnt = 0, number_cnt=0, hangul_cnt =0, special_cnt =0;
for (int i = 0; i < word.length(); i++) {
char ch = word.charAt(i); //ch에 i를 넣고 한글자씩 검사
if(Character.isUpperCase(ch)) { //대문자 검사
upper_cnt++;
} else if (Character.isLowerCase(ch)) { //소문자 검사
lower_cnt++;
} else if (Character.isDigit(ch)) { //숫자 검사
number_cnt++;
} else if ('가' <= ch && ch <= '힣') { //한글 검사
hangul_cnt++;
} else { // 그 외- 특수문자
special_cnt++;
}
String str = "안녕하세요";
// index => 01234
//-------------------------------
//안녕하세요가 꺼꾸로 나오게 하기!!
String result = "";
for(int i = str.length()-1; i>=0; i-- ){//4 부터 0까지
result += str.charAt(i);
}
System.out.println(result);