2013-07-16 3 views
0

텍스트 파일에서 일부 데이터를 읽는 중입니다. 데이터 중 일부는 유지하고자하는 fornt에 "\"를 포함 할 수 있습니다. 내가 겪고있는 문제는 내가 문자열에이 데이터를 저장할 때 var java가 "\"이 String의 특수 문자이기 때문에 다른 "\"이 앞에 있다고 추측합니다. 그것은 "\"텍스트 파일파일 읽기 및 추가 ""

String line; 
br = new BufferedReader(new FileReader(f)); 
while((line = br.readLine()) != null) 
{ 
String[] arrLineElements = line.split(":"); 
if(arrLineElements.length<=1) 
    logWriter.write("Error in line:"+line+". Need at least 2 elements. Skipping line."); 
if(arrLineElements.length==2) 
{ 
    Dn dn = new Dn(arrLineElements[0], "", false, arrLineElements[1], "", false, "", false); 
    dnList.add(dn); 
} 
} 

데이터는 다음과 같은 형식으로 별도의 추가 자바없이 데이터를 저장할 수 있나요 : \ + 441506442222

: 441,506,441,111 \

3333 : 4444

나는 데이터가

로 DN 객체에 저장되어있는 자바 코드를 실행 한 후

\\ + 441506441111 : \\ +

3333 441,506,442,222 : 어쨌든 4444

그 변경?

감사

+0

디버거 같은 것으로 보입니까? –

+0

@PeterTillemans 예 제가 일식을 사용하고 디버그 모드에서 내가 var에 봤어. – alexis

+1

사실, 당신이 보는 백 슬래시는 실제로 존재하지 않습니다. "\\ n"은 캐리지 리턴이 아니라 \ n을 의미하는 방법입니다. Eclipse는 소스 코드에서 볼 수있는 것처럼 문자열을 표시합니다. 복사하기 쉽습니다. –

답변

3

자바 내가 \ "는"그것은 이스케이프 시퀀스입니다 문자열

에서 특수 문자이기 때문에 추측 앞에 또 다른 "\"를 추가 예.

왜 String 내부에서 변경해야합니까? 이 문자열을 사용할 수 있습니다. 즉

System.out.println("\\+441506441111:\\+441506442222"); 

에서 사용하고 단일으로 인쇄합니다. 파일에서 읽을 때 당신이

+0

안녕하세요 @ Waqas, 의견을 주셔서 감사하지만 어쩌면 내가 잘 설명하지 않을거야. 나는 "String foo"라고 말할 수있는 String에 저장하고있다. 그래서 디버거에서 나는 var "foo"를 \\ + 441506441111로 보았습니다. 내가 foo를 사용하여 SQL 구문을 만들 때 \ + + 44 대신 ... +044 ... – alexis

+0

디버거에서이 내용이 표시 될 수 있지만 쿼리에 전달한 다음 인쇄 할 때 System.out.println (질의)을 콘솔에 질의하면, double을 얻지는 않을 것이다. –

0
  1. 를 원하는 목적지

    당신은 그냥이 문자열을 사용합니다, 자바는 '\'특별 문자를 이스케이프해야합니다.

  2. 같은 텍스트 표현하기 위해 문자열을 만드는 : 여분의보기의 코드 포인트에

    • 는 '\'가있다; A 출력의 관점에서
    • 당신은 하나를 볼 것이다 '\'
  3. 를 결론은 : 당신이 하나를 읽을

    • '\'
    • 을 디버거 또는 기타 방법으로 볼 수 코드, 당신이 다시 텍스트를 인쇄 할 경우 "\"
    • 하지만, 단 하나가 될 것입니다 볼 '\'