본문 바로가기

프로그래머스

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

내 코드 - String.split(" ")을 사용할 때, 공백에 주의했어야 한다.

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

String[] sArr = s.split(" ");
String[] smallSArr;
String tmp;

for (int j = 0; j < sArr.length; j++) {
smallSArr = sArr[j].split("");

for (int i = 0; i < smallSArr.length; i++) {
tmp = smallSArr[i];

/**
* 대문자로
*/
if (i % 2 == 0) {
tmp = tmp.toUpperCase();

/**
* 소문자로
*/
} else {
tmp = tmp.toLowerCase();
}

smallSArr[i] = tmp;
}

sArr[j] = String.join("", smallSArr);
}

answer = String.join(" ", sArr);

/**
* String.split(" ")로 나누면
* 초기 단어의 끝부분에 공백이 존재할 때, 그 공백이 사라지는데
* 그 부분을 인위적으로 추가해 줌
*/
int lastTrimLen = s.length() - answer.length();

for (int i = 0; i < lastTrimLen; i++) {
answer += " ";
}

return answer;
}
}



그리고 다른 사람 코드는 별 다른 건 없고, StringBuilder를 사용했는데


String, StringBuilder, StringBuffer의 차이는 아래와 같다.

/**
* 불변
*/
String

/**
* 가변 - 싱글 스레드
*/
StringBuilder

/**
* 가변 - 멀티 스레드
*/
StringBuffer