1. 문자 찾기
한개의 문자열을 입력받고 특정 문자를 입력받아 입력받은 문자열에 특정문자가 몇개 존재 하는 지 알아낸다.
* 대소문자를 구분하지 않는다.
1. 특정문자 1개를 받아 변수에 넣기 위해 charAt(0)을 사용했다.
sc.next().charAt(0)
2. Character.toUpperCase() 를 통해 특정문자 1개를 대문자로 변경했다.
3. 향상된 for문 사용을 위해 String 문자열을 toCharArray() 을 사용하여 char 배열로 변경했다.
import java.util.Scanner;
public class Main {
public int solution(String str, char ch) {
int answer = 0;
str = str.toUpperCase();
ch = Character.toUpperCase(ch);
// for (int i = 0; i < str.length(); i++) {
// if (str.charAt(i) == ch) {
// answer++;
// }
// }
for(char x : str.toCharArray()){
if(x == ch){
answer++;
}
}
return answer;
}
public static void main(String[] args) {
Main test1_01 = new Main();
Scanner scanner = new Scanner(System.in);
String str = scanner.next();
char ch = scanner.next().charAt(0);
System.out.println(test1_01.solution(str, ch));
}
}
2. 대소문자 변환
대문자, 소문자가 같이 존재하는 문자열에서 대문자를 소문자로 소문자를 대문자로 변경하여 문자열을 return 한다.
1. 해당 문자가 소문자인지 대문자인지 확인하기 위해 Character.isUppercase() 를 사용했다.
2. 아스키코드로도 구현 가능하다.
대문자는 65~90, 소문자는 97~122 이고 대문자와 소문자의 차이는 32 이기 때문에
if(x>=64 && x<=90) 일때는 대문자 이고
if(x>=97 && x<=122) 일때 소문자 이다.
answer = (char) (x-32);
(char) 로 형변환 해주면 아스키코드 숫자 대로 문자가 return 된다.
-32를 해준 이유는 소문자일 경우 대문자로 변경되고
+32를 해주면 대문자가 소문자로 변경된다
import java.util.Scanner;
public class Main {
public String solution(String sentence){
String result = "";
for (char x : sentence.toCharArray()) {
if (Character.isUpperCase(x)) {
x = Character.toLowerCase(x);
} else {
x = Character.toUpperCase(x);
}
result = result + x;
}
return result;
}
public static void main(String[] args) {
Main main = new Main();
Scanner sc = new Scanner(System.in);
String sentence = sc.next();
System.out.println(main.solution(sentence));
}
}
'알고리즘' 카테고리의 다른 글
10월 13일 2문제 - Java (0) | 2021.10.13 |
---|---|
10월 12일 2문제 - Java (0) | 2021.10.12 |
[프로그래머스] 하샤드 수 (0) | 2021.05.11 |
[프로그래머스] 핸드폰 번호 가리기 (0) | 2021.05.10 |
[Java] 백준 5585 : 거스름돈 (1) | 2020.05.20 |