2014-01-29 2 views
1

나는 Citavi-Bibtex-Export-Tool에 의해 생성 된 독일어 움라우트를 대체하고 싶습니다. 예를 들어 하나의 참조 문자열 입력이 J{\"o}rg이고 그 결과로 Jörg을 원합니다. 내 JUnit-Test를 검사 한 결과 내 방법의 결과는 J{"o}rg - 무엇이 잘못 되었습니까?자바의 라텍스 또는 bibtex 도구로 생성 된 독일어 움라우트 대체?

public String replaceBibtexMutatedVowels(String str){ 
    CharSequence target = "{\\\"o}"; 
    CharSequence replacement = "ö"; 
    str.replace(target, replacement); 
    return str; 
} 

UPDATE : 고마워 - 내가 독일어 움라우트를 마스터 할 수 있었다는 - 불행하게도하여 BibTex은 {\dg}에 인용 부호를 이스케이프 - 나는 해당 자바 코드를 생성 할 수 없습니다. 기본적으로

String afterDg = ""; 
    CharSequence targetDg = "{\\dg}"; 
    CharSequence replacementDg = "\""; 
    afterDg = afterAe.replace(targetDg, replacementDg); 
    newStringInstance = afterDg; 
    return newStringInstance; 
+0

사용 유니 코드 –

답변

4

, 당신은 모든 권리를하고 있지만됩니다

str.replace(target, replacement); 

str = str.replace(target, replacement); 

로 교체해야하기 때문에 문자열 자체를 변경하지 않습니다 대체하지만, "대체 반환 끈".

P .: 독일어에는 "ö"보다 많은 특수 문자가 있습니다. 당신이 "A", "ü"(및 해당 대문자)를 놓치고, "ß"는 등

그리고 여기 내 테스트 코드입니다 :

package test; 

public class Test { 

    public static void main(String[] args) throws Exception { 
     String latexText = "J{\\\"o}rg"; 
     String normalText = replaceBibtexMutatedVowels(latexText); 
     System.out.println(latexText); 
     System.out.println(normalText); 
    } 

    public static String replaceBibtexMutatedVowels(String str) { 
     CharSequence target = "{\\\"o}"; 
     CharSequence replacement = "ö"; 
     str = str.replace(target, replacement); 
     return str; 
    } 

} 
+0

큰 adivce으로 시도 - 불행히도이 bibtex 따옴표가 나타나면이를 해결하는 또 다른 문제입니다. – Jochen

+0

text = "\"''\ "\ '\" "와 같은 것을 의미합니까? – quant

관련 문제