2013-07-21 2 views
-1

사용자 입력으로 사용되는 여러 줄의 문자열이 있습니다. 나는 문자열을 ArrayList에 의해 str.split("\\s ")에 의해 깨고 특정 단어가 바뀌면 이제는 ArrayList에있는 단어를 병합 된 단어로 병합하고 문자열을 여러 줄 패턴으로 다시 만듭니 다. 나는 이것을하는 법을 모르겠다. 도와주세요. 유일한 표준 자바 사용arrylist를 문자열로 변환

+0

, 후 .... 더 도움이 빨리 들어 –

+1

을 [SSCCE] (http://sscce.org/)을 게시 할 수 있습니다. –

+0

그럼 문자열을 연결하는 방법을 묻는 중입니까? – SLaks

답변

4

소목 당신이 Guava 라이브러리가있는 경우

StringBuilder sb = new StringBuilder(); 
for (String current : words) 
    sb.append(current).append(" "); 
String s = sb.toString().trim(); 

사용할 수있는 (가정 당신의 ArrayList는 words라고합니다) :

String s = Joiner.on(" ").join(words) 

이 두 심지어 유형이 경우 작동합니다 words의 값은 String[]입니다.

줄 구조를 유지하려면 다음 방법을 제안하십시오. 먼저 .split("\n")을 사용하여 입력 문자열을 줄 바꿈하십시오. 그런 다음 .split("\\s")을 사용하여 각 줄을 단어로 나눕니다. 여기에 코드가 같아야 방법은 다음과 같습니다 여기

당신이 시도 것을
public String convert(String input, String wordToReplace, String replacement) { 
    StringBuilder result = new StringBuilder(); 
    String[] lines = input.split("\n"); 
    for (String line : lines) { 
    boolean isFirst = true; 
    for (String current : line.split("\\s")) { 
     if (!isFirst) 
     result.append(" "); 
     isFirst = false; 
     if (current.equals(wordToReplace)) 
     current = replacement; 
     result.append(current); 
    } 
    result.append("\n"); 
    } 

    return result.toString().trim(); 
} 
+0

문제는 줄 바꿈을 그대로 유지하는 것입니다. – Ankit