2013-10-01 2 views
2

어떻게 부분 문자열 연결을 StringBuilder으로 리팩터링 할 수 있습니까?StringBuilder에서 하위 문자열을 연결하는 방법은 무엇입니까?

 String line = "this is my start and my end string"; 
     int start = line.indexOf("start"); 
     line = line.substring(0, start) + line.substring(start + 5); 

     int end = line.indexOf("end"); 
     line = line.substring(0, end) + line.substring(end + 3); 
      //result: this is my and my string"; 

StringBuilder의 코드는 어떻게됩니까? 하위 문자열을 여러 번 차례로 실행하고 싶습니까? 이 같은

+0

정규 표현식 사용을 고려 했습니까? –

답변

3

, 당신은 이런 식으로 뭔가를 시도 할 수 있습니다 시도해보십시오

StringBuilder line = new StringBuilder("this is my start and my end string"); 
int start = line.indexOf("start"); 
line.delete(start, start + 5); 
int end = line.indexOf("end"); 
line.delete(end, end + 3); 
String result = sb.toString() 

번 모두 StringBuilder를 생성, 그 내용을 조작 할 수 있습니다.

1

뭔가 할 수있다 : 뜻이 같은

StringBuilder line = new StringBuilder("this is my **start** and my **end** string"); 
    int start = line.indexOf("start"); 
    line = new StringBuilder(line.substring(0, start).append(line.substring(start + 5))); 

    int end = line.indexOf("end"); 
    line = new StringBuilder(line.substring(0, end).append(line.substring(end + 3))); 
+0

변수'start'를 두 번 선언했습니다. –

+0

감사합니다. 죄송합니다 그것은 OP의 원본 게시물에서 복사/붙여 넣기했습니다. – anubhava

1

뭔가? 아니면 내가 잘못 이해 했는가?

String line = "this is my start and my end string"; 
int start = line.indexOf("start"); 
int end = line.indexOf("end"); 
StringBuilder sb = new StringBuilder(); 
sb.append(line.substring(0, start); 
sb.append(line.substring(start + 5); 
sb.append(line.substring(0, end); 
sb.append(line.substring(end + 3); 
String result = sb.toString() 
0

귀하의 질문에 "내가 어떻게이 반복적으로 문자열에서 부분 문자열을 제거합니까"경우

String line = "this is my start and my end string"; 
    int start = line.indexOf("start"); 
    StringBuilder stringBuilder = new StringBuilder(); 
    stringBuilder.append(line.substring(0, start)); 
    stringBuilder.append(line.substring(start + 5)); 

    int end = line.indexOf("end"); 
    stringBuilder.append(line.substring(0, end)); 
    stringBuilder.append(line.substring(end + 3)); 
    System.out.println("StringBuilder : "+stringBuilder.toString()); 
0

StringBuilder는 내가 잘못하지 않은 경우 indexOf 및 하위 문자열 구현이 있습니다. 질문의 주요 관심사는 String의 사용을 폐기하는 것으로 보이며 StringBuilder의 주요 기능은 여전히 ​​연결입니다.

그래서 http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html은 관련 메소드를 찾는데 도움이되며 .append() 메소드를 사용하여 StringBuilder를 사용하고 문자열 찾기 및 하위 문자열 메소드를 사용할 수 있습니다.

관련 문제