2014-11-20 2 views
0

Java에서 .replace 메서드를 사용하여 'Amazon'의 개별 'a'문자를 대체하려고합니다.StringBuffer의 개별 문자로 대체

String을 사용하여이 작업을 수행하는 방법을 알고 있지만 아래 코드를 StringBuffers와 함께 사용하면 대신 'Amaazon'출력이 표시됩니다.

StringBuffer의 개별 문자를 대체하는 방법을 알고있는 사람이 있습니까?

public class Hello { 

    public static void main(String argv[]) { 
    StringBuffer str1 = new StringBuffer("Amazon"); 
    String str = new String("Rainforest"); 
    int a = str.indexOf('o',2); 
    StringBuffer str2 = str1.replace(2, 2, "a"); 
    System.out.println(a); 
    System.out.println(str2); 
    } 
} 

대답을 통해 그것을 할 수있는 올바른 방법을 찾기 위해 관리, 그래서 내가 내 수정 코드를 게시 할 줄 알았는데 "bmazon의 출력을 얻으려면

public class Hello { 

public static void main(String argv[]) { 
StringBuffer str1 = new StringBuffer("Amazon"); 
String str = new String("Rainforest"); 
int a = str.indexOf('o',2); 
StringBuffer str2 = str1.replace(0, 1, "b"); 
System.out.println(a); 
System.out.println(str2); 
} 

}

을 "

답장을 보내 주셔서 감사합니다!

+1

실제로'StringBuffer'를 사용하고 싶지 않다면 대신'StringBuilder'를 사용하십시오. –

답변

2

이것은 하나 하나의 오류입니다. replace(...)의 첫 번째 두 매개 변수는 대체 할 부분 문자열의 시작 인덱스, (포함)은이고 대체 할 부분 문자열의 끝은 전용입니다. 두 값에 동일한 값을 사용하면 실제로 인덱스 1과 2 사이의 아무 것도 "대체"됩니다. 범위를 표현하는 포괄적 인/배타적 인 방법은 매우 일반적입니다.

+0

수정 된 코드를이 대답에 포함시킬 수도 있습니까? – CreationEdge

+0

내 수정 된 코드를 질문에 게시했습니다. 답변 해 주셔서 감사합니다! –

+0

@James이 답변으로 문제가 해결되면이를 허용으로 표시하십시오. –

관련 문제