본문 바로가기
프로그래머스/LV1.자바

[프로그래머스] 가운데 글자 가져오기.java (string 문법), [프로그래머스] 수박수박수박수박수박수?

by 몰라닉네임 2022. 11. 4.

[프로그래머스] 가운데 글자 가져오기.java

 

  • charAt() charAt은 문자열의 글자를 char 형식으로 한 글자 가져온다.

for 문을 이용해 char ch = charAt(i)  많이 사용

class Solution {
    public String solution(String s) {
        String answer = "";
        
        if(s.length() % 2 ==0){
            answer = answer + s.charAt(s.length()/2 -1 );
            answer = answer + s.charAt(s.length()/2);
        }
        else{
            answer = answer + s.charAt(s.length()/2);
            
        }
        return answer;
    }
}

.

그리고 내가 처음 생각했던 방법

 

char 를 string으로 변화

 

  • Character.toString(ch)
char ch = 'A';
String str1 = Character.toString(ch);
String str2 = new Character(ch).toString();
  • String.valueOf(ch), String.valueOf(arrChar)
char ch  = 'A';
char[] arrchar = new char[] {'a', 'b', 'c', 'd'};

String str1 = String.valueOf(ch);
String str2 = String.valueOf(ch);

문제의 소스코드2

public class Solution {

    public static String solution(String s) {
        String answer = "";
        char[] c = s.toCharArray();
        if (c.length % 2 != 0){
            int idx = c.length/2;
            answer = Character.toString(c[idx]);
        }
        else{
            int idx = c.length/2 - 1;
            answer = Character.toString(c[idx]) + Character.toString(c[idx+1]);
        }
        return answer;
    }
}

.


[프로그래머스] 수박수박수박수박수박수?

 

  • String 연산자 + 

 

문제소스코드

class Solution {
    public String solution(int n) {
        String answer = "";

        for(int i =1; i<=n; i++){
            if(i%2 != 0){
                answer = answer +"수";
            }
            else{
                answer = answer + "박";
            }
        } 

        
        return answer;
    }
}

 


[프로그래머스] 이상한 문자 만들기

 

 

class Solution {
    public String solution(String s) {
        String answer = "";
        String[] str = s.split("");
        int idx = 0; 
        
        
        for(int i=0; i<str.length; i++){
            if(str[i].equals(" ")){ //띄어쓰기 있다면
                idx = 0; //인덱스 0 초기화
            }else if(idx % 2 == 0){ 
                str[i] = str[i].toUpperCase(); //대문자로 변경
                idx++; 
            }else if(idx % 2 != 0){ 
                str[i] = str[i].toLowerCase(); //소문자로 변경
                idx++; 
            }
            answer += str[i];
        }
        return answer;
    }
}