작성자 없음
작성자 정보가 삭제된 글입니다.
작성
·
387
0
public String solution(String str) {
String answer;
char[] s = str.toCharArray();
int lt = 0, rt = s.length - 1;
while (lt < rt) {
if (!Character.isAlphabetic(s[lt]))
lt++;
else if (!Character.isAlphabetic(s[rt]))
rt--;
else {
char tmp = s[lt];
s[lt] = s[rt];
s[rt] = tmp;
lt++;
rt--;
}
}
answer = String.valueOf(s);
//answer=s.toString();
return answer;
}
위의 코드에서
answer = String.valueOf(s)와
주석처리한 answer=s.toString이 어떤 차이점이 있을까요??
두 코드 다 s를 스트링으로 바꿔서 answer에 넣어주는거라 생각했는데 주석처리한 코드로 제출하면 오답이라도 나오네요
답변 3
0
혹시라도 도움되실까 정리해봅니다.
String은 조금 특이케이스여서 Integer를 예시로 드리려합니다.
Integer.valueOf() = Integer 객체 반환
Integer.parseInt() = int (primitive) 값 반환
toString() = Override 하지 않을시 객체 메모리주소 반환
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
보시다시피, 클래스 정보를 구해 클래스 이름을 구하고 @ HexString 해쉬코드를 반환합니다.
0
추가로 toString() 을 재정의하여 사용한다 가정했을 때
toString()은 null일 때 NullPointerException 을 발생시키고
String.valueOf()는 null 이라는 문자열로 처리합니다.
0
그냥 지나가다 답변 남깁니다만....
Object 클래스 공부를 다시 하셔야 할 듯 합니다.
기본적으로 toString()은 Object의 메소드라서 재정의를 해 주지 않으면 Object의 메소드가 호출 됩니다.
아마 캐릭터 배열의 주소값이 나왔겠네요.