문자열의 특정 인덱스의 문자를 바꾸고 싶습니다.

문자열에서 특정 인덱스의 문자를 바꾸려고

소스코드

String myName = "domanokz";
myName.charAt(4) = 'x';

이런식으로 해봤는데 에러가 발생합니다. 다른 메소드가 있는건가요?

1답변

  • 좋아요

    0

    싫어요
    채택취소하기

    자바에서 문자열은 immutable이라 값을 바꿀수 없습니다. 그래서 문제를 해결하려면 특정 인덱스가 바뀐 새로운 문자열을 만들어서 대입하는 방법으로 하시면 될 것 같습니다.

    String myName = "domanokz";
    String newName = myName.substring(0,4)+'x'+myName.substring(5);
    

    이런식으로 말이죠. 이게 싫으시다면 StringBuilder를 써서

    StringBuilder myName = new StringBuilder("domanokz");
    myName.setCharAt(4, 'x');
    
    System.out.println(myName);
    

    이렇게 하셔도 됩니다.

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.