
내가 생각했을때 문제에서 원하는부분
문자열 myString이 주어집니다.
myString에서 알파벳 "a"가 등장하면 전부 "A"로 변환하고, "A"가 아닌 모든 대문자 알파벳은 소문자 알파벳으로 변환하여 return 하는 solution 함수를 완성하세요.
내가 이 문제를 보고 생각해본 부분
solution 메서드는 입력받은 문자열 myString을 한 글자씩 차례로 확인한다.
각 문자 ch가 소문자 'a'라면, 대문자 'A'로 변환하여 answer에 추가한다.
만약 문자가 대문자 알파벳('A' 이상 'Z' 이하)이고 동시에 'A'가 아니라면, 그 문자를 소문자로 변환하여 answer에 추가한다.
위 두 조건에 해당하지 않는 나머지 문자는 그대로 answer에 추가한다.
이렇게 문자열 전체를 처리한 뒤, StringBuilder에 쌓인 결과를 문자열로 변환하여 반환한다.
main 메서드에서는 두 개의 테스트 문자열을 준비하여 solution을 실행하고, 변환된 결과를 출력하도록 하였다.
출력 결과는 각 문자열 내의 소문자 'a'가 대문자 'A'로, 그리고 'A'를 제외한 대문자가 모두 소문자로 변환된 형태임을 확인할 수 있다.
코드로 구현
class Solution {
public String solution(String myString) {
StringBuilder answer = new StringBuilder();
for (int i = 0; i < myString.length(); i++) {
char ch = myString.charAt(i);
if (ch == 'a') {
answer.append('A');
} else if (ch >= 'A' && ch <= 'Z' && ch != 'A') {
answer.append(Character.toLowerCase(ch));
} else {
answer.append(ch);
}
}
return answer.toString();
}
}
프로그래머스 코드
package programmers;
// 프로그래머스 A 강조하기
public class Main71 {
public static String solution(String myString) {
StringBuilder answer = new StringBuilder();
for (int i = 0; i < myString.length(); i++) {
char ch = myString.charAt(i);
if (ch == 'a') {
answer.append('A');
} else if (ch >= 'A' && ch <= 'Z' && ch != 'A') {
answer.append(Character.toLowerCase(ch));
} else {
answer.append(ch);
}
}
return answer.toString();
}
public static void main(String[] args) {
String test1 = "abstract algebra";
String test2 = "PrOgRaMmErS";
System.out.println(solution(test1)); // AbstrAct AlgebrA
System.out.println(solution(test2)); // progrAmmers
}
}
위에 있는 코드를 변경한 코드
코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.