2017-04-09 7 views
0

현재 트위터 API를 사용하여 검색된 트윗의 모든 작은 따옴표 및 개행 문자를 제거하도록 설계된 방법이 아래에 나와 있습니다. 개행은 매번 작동하지만, 어떤 이유로 든 교체 문자는 절반 만 작동합니다. 이 대체 방법은 쓰기 파일보다 정확히 한 줄씩 호출되기 때문에 어떤 이유로 반복을 놓치는 것이 의심 스럽습니다. 트윗은 무작위로 필터링됩니다. 나는 때때로 그것이 작동하는 이유를 설명 할 수 없다. 이상한 메모. x.replace ("\", "\\ '");로 if 문을 제거합니다. 아무것도 필터링되지 않습니다.작은 따옴표를 이스케이프 된 따옴표로 일관되게 바꾸는 방법

미리 감사드립니다.

public static String replace(String x) { 
    String replaced = x; 


     if (x.contains("'")) { 
      replaced = x.replaceAll("'", "\\\\'"); 
     } 
     if(x.contains("\n") || x.contains("\r")){ 
      replaced = x.replaceAll("\\r\\n|\\r|\\n", " "); 
     } 

     System.out.println(replaced); 

    return replaced; 
} 

편집 : 문이 활성화 경우에 보면,이 있지만, 시간의 작은 소수는 간단한 몇 가지 트윗이 완전히 대체 라인으로 이동 대체되지 않습니다. 왜 안돼? 나는 단서가 없다.

샘플 데이터 : https://justpaste.it/15c6t 첫 번째 나사까지가 "당신이있어"라인 (20)

+0

왜 작은 따옴표를 제거하여 'replaced = x.replaceAll ("'", "\\\\" "); –

+0

을 공백으로 바꾸기 만하면됩니다. –

+0

작은 따옴표를 지우려고하지 않습니다. 저는 데이터 분석을 위해 "weka"라는 제 3 자 프로그램에서 사용할 수 있도록 그것을 벗어나려고합니다. 작은 따옴표를 \ ' – Xenorosth

답변

0

그것은 최초의 대체 방법은 두 번째 대체 방법으로 방해 받고 경우가 있다고 보인다. 둘을 서로 다른 두 가지 방법으로 분리 할 때 (어색한 동안), 그것이해야하는 것처럼 기능했다.

public static String replace(String x) { //Cleans the single quotes 
    String replaced = x; 
     if (replaced.contains("'")) { 
      replaced = x.replaceAll("'", "\\\\'");    
     } 
    return replaced; 
} 

public static String removeEnters(String x){ //Removes any enters 
    String replaced = x; 
    if(replaced.contains("\n") || x.contains("\r")){ 
      replaced = x.replaceAll("\\r\\n|\\r|\\n", " "); 
    } 
    return replaced; 
}