2009-10-28 5 views
1

표준 출력 Java String에 두 개의 공백을 표시하려고 "&nbsp;&nbsp;"을 시도했습니다. System.out.println("__"); < ---- 시도 (두 개의 공백을하지만, 분명히, 그것은 하나 개의 공간으로 아래로 트림, 따라서 밑줄) 내가 상상문자가 Java에서 올바르게 표시되지 않습니다.

&nbsp;을 탈출 할 수있는 방법이 있습니다,하지만 난 그것을 알아낼 수없고 온라인 도움말을 찾으십시오. 그것을 찾는 것은 문자 그대로 &nbsp;&nbsp;이 많이 등장하기 때문에 아이러니합니다.

도움을 주시면 감사하겠습니다.

편집 :

for (int j = 0; j < COLUMNS; j++) 
    if (j < 10){ 
    r += "__"; 
    } 

은 10 대처럼하지 (20)을 생산

를 인쇄 할 때 미안 해요

+0

COLUMNS == 10입니까? 그렇지 않으면 정상적으로 작동합니다. –

+0

열 = 15. 그게 내가 얻지 못하는 이유입니다. 디버그하고주의를 기울여야합니다. 모두에게 도움을 주셔서 감사합니다. – Brian

+0

r은 어떤 식 으로든 잘리지 않으며 두 공백은 항상 하나의 공백으로 출력됩니다.이 코드는 제 코드가 아니기 때문에이 시점에서이 코드가 속한 개발자에게이 문제를 제기 할 의무가 있습니다. 이 문제를 파악하는 데 도움을 주신 모든 분들께 감사드립니다. – Brian

답변

7

&nbsp;는 HTML 특정 인코딩 여기에 서식에서 새로운 나는 아직도 기대했다.

처음 두 번 공백에 해당하는 Java 문자열은 두 개의 공백 문자 (예 :

String s = " "; 

println 메소드()는한다고일한하려고 것을 요청합니다. 당신은 그것이 당신을 단일 공간으로 줄 였다고 믿게 만들었습니까? 혹시, COLUMNS 5 - 당신의 코드에

을 바탕으로 : 나는

는 편집이

... 문제는 다른 생각? :-) 다시

편집 : COLUMNS 15이면

OK는,이 코드는 r가 추가 스물 개 공간을 갖는 초래할 것이다. 디버거에서 단계별로 수행하거나 로깅 문을 r += 행 위에 두어 명령문이 몇 번 호출되었는지 확인할 수 있습니다.

또한 r이 검사중인 곳으로 출력되기 전에 나중에 사용되는 방법을 살펴보십시오. 아마도 그 값은 Java에서 명시 적으로 또는 암시 적으로 (예 : 검색되고 표시되기 전에 너무 좁은 10 자의 데이터베이스 열에 저장되는 등) 어느 시점에서 잘립니다.

2

자바에서는 & nbsp를 사용할 필요가 없습니다. System.out.print(" "); 트릭을해야합니다. 뭔가를 시도 :

System.out.println("banana\u00A0phone"); 
6

Alt 키를 누른 상태에서 숫자 패드에 0160을 입력하면됩니다.

+0

소스 코드 문자 인코딩에 NBSP (대부분의 문자 인코딩)의 코드 포인트가 포함되어 있으면 유니 코드 리터럴을 사용할 필요가 없습니다. 문자열 리터럴에서 직접 다른 문자로 사용할 수 있습니다 : "banana phone"(이것이 실제로 어떻게 표현되는지는 알 수 없습니다) – jarnbjo

+0

그래서 보통 공간으로 바뀌 었 습니다만, 말했듯이 NBSP를 사용할 수 있습니다 Java 코드에서. – jarnbjo

+4

보이지 않는 구별에 대한 의도가 명확 해 지도록 유니 코드 리터럴을 사용해야합니다. –

0

또한 비 파괴를 만들 수 있습니다 : 당신이 어떤 이유로 당신의 문자열에서 비 분리 공백을 원한다면, 당신은 문자 유니 코드를 사용할 필요가

System.out.print("This is the a string before spaces" + " " + "this is a string after spaces");