Welcome to Wesley & Harry's Traveling & Programming

IT Program/Java Basic

자바(java) 띄어쓰기 하는 법 & 이스케이프 문자(\t, \n, \",\')

Wesley & Harry 2022. 2. 27. 17:53
반응형

우선 처음 시작할 때 저장을 하지 않고 RUN버튼을 누르거나 단축키를 누를경우

Save and Launch가 뜬다. 이 경고창?은 저장을 한뒤 실행을 해야하기 때문에 걱정하지말고 OK를 눌러주도록 한다.

 

이 글을 시작하기에 앞서 앞게시물에서 확인할 수 있듯이 해당 코드들은 main 메서드 안에서 이루어진다.

public static void main(String[] args){}

 

 

 

자바를 처음 배울 때 당시의 궁금증이 있었다. 강사님에게 물어보기는 부끄러웠다. 그중 하나가 콘솔에서 띄어쓰기를 하는 방법에 대한 궁금증이였다.

 

java eclipse의 console 부분에서 띄어쓰기를 하는 방법은 여러가지가 있다.

저번 게시물에선 println과 print의 차이를 통해 줄을 바꿔쓰는 방법을 알아보았다.

이번 게시물은 줄바꿈 뿐만 아니라 탭, 내려쓰기를 하나의 System.out.print() 한공간에서 해보고자 한다.

그러기 위해선 이스케이프 문자에 대해 알고있어야한다.

이스케이프 문자는 이스케이프 시퀀스, 이스케이프 문자열로 불리기도 한다.

우리가 자주 사용할 내용을 살펴본다.

  이스케이프 문자 활용
제어문자 \t 탭만큼 띄어쓰기(4칸정도 소모)
\n 줄 바꿈
\r 리턴 (현재 행 처음으로 이동)
이스케이프문자 \" " (큰 따옴표)
\' ' (작은 따옴표)
\\ \

이크케이프 문자의 활용을 해보며 사용해본다

처음엔 이런것이 있구나 하는 생각으로 사용을 중점적으로 해본다. 너무 모든걸 알려하는 순간 지쳐쓰러진다.

 

int wesley = 1;
int harry = 2;
System.out.println("wesley = " + wesley + "harry = " + harry);

우리는 값을 출력할때 자신이 원하는 모습으로 출력이 되기를 원한다.

해당 값의 console의 형태는 어떻게 나타날까.

""따옴표 안에 있는 내용은 띄어쓰기까지 완벽하게 그대로 콘솔에 나타난다.

하지만 위 코드와 같이 따옴표 + 값 + 따옴표 + 값 을 출력하게된다면

이런식으로

wesley =1harry = 2

라는 값으로 나타나진다.

출력이 이렇게 나온다면 우린 값을 혼동할수가 있다.

wesley = 1harry = 2 라고 말이다.

우리는 이 값을 구분하고 싶어질텐데 다양한 방법이 존재한다.

다음을 따라해보자.

int wesley = 1;
int harry = 2;
System.out.println("wesley = " + wesley +" "+ "harry = " + harry);

이렇게 쓴다면 결과값은 어떻게 나올까 단순히 띄어쓰기만을 위해서 말이다.

우리가 생각한대로 공백이 껴서 나오게 된다.

하지만 이런식으로 작성을 하게 되면 코드의 양이 많아졌을 경우 내가 바꾸고 싶은 결과값의 부분을 찾기 힘들어질 것이다. 저자리에 공백이 아닌 컴마를 사용하여도 무방하다.

이번엔 다른 값으로 길이가 다른 두줄을 연달아 써보자.

 

int wesley = 1;
int harry = 2;
int soundclub = 33;
int grayboom = 44;
System.out.println("wesley = " + wesley +" "+ "harry = " + harry);
System.out.println("soundclub = " + soundclub +" "+ "grayboom = " + grayboom);

이 값의 출력값은 어떨까 어느정도 예상이 갈것이다.

 

정말 정직하게 나온것을 볼 수 있다. 변수명과 변수값이 다름에 따라 길이도 달라지기 때문에 들쭉 날쭉한 모습을 볼 수 있다.

우리는 이 값을 좀더 깔끔하게 보길 원한다. 원래 사람이라면 정돈된 것을 보기 좋아하기 때문이다.

그렇다면 우린 공백을 위에 있는 System.out.println에 더 넣어야할까?

우선 직접 맞춰가보자

int wesley = 1;
int harry = 2;
int soundclub = 33;
int grayboom = 44;
System.out.println("wesley = " + wesley +"      "+ "harry = " + harry);
System.out.println("soundclub = " + soundclub +"  "+ "grayboom = " + grayboom);

간격을 맞추기 위해 공백을 더 추가했다.

결과값은 어떨까

깔끔해진것을 볼 수 있다. 하지만 이렇게 일일이 맞추기엔 너무 많은 실행과 하나하나 세야하는 불편함이있다.

이러한 불편함을 해소해줄 방법은 \t이다.

" " 공백자리에 \t를 넣어보겠다.

결과값은 어떻게 될까

int wesley = 1;
int harry = 2;
int soundclub = 33;
int grayboom = 44;
System.out.println("wesley = " + wesley +"\t"+ "harry = " + harry);
System.out.println("soundclub = " + soundclub +"\t"+ "grayboom = " + grayboom);

공백을 주지 않아도 깔끔하게 정돈된 모습을 볼 수 있다.

우린 이상태에서 System.out.println을 쓰기 귀찮아서 조금이라도 덜쓰기 위해 한줄로 작성을 하고자 한다.

위 표에서 보았듯 \n을 사용하면 어떨까?

\n을 사용하기 전 해당 System.out.println을 한줄로 합쳐본다.

int wesley = 1;
int harry = 2;
int soundclub = 33;
int grayboom = 44;
System.out.println("wesley = " + wesley +"\t"+ "harry = " + harry + "soundclub = " + soundclub +"\t"+ "grayboom = " + grayboom);

합칠때 아래의 System.out.prinln() 괄호안의 내용을 위의 println에 붙여넣어준다.

이때 유의할 점은 harry 뒤에 +를 붙여주는것을 까먹지 말자.

실행 결과를 확인해본다.

아까와 다르게 결과값이 이상하게 나온다.

harry + "soundclub = " 이사이에 \n을 넣으면 어떻게 될까?

int wesley = 1;
int harry = 2;
int soundclub = 33;
int grayboom = 44;
System.out.println("wesley = " + wesley +"\t"+ "harry = " + harry +"\n"+ "soundclub = " + soundclub +"\t"+ "grayboom = " + grayboom);

System.out.println을 한번 더 쓰지 않고 아까와 같이 깔끔하게 나옴을 알 수 있다.

 


우리는 여기서 또한 의문 한가지를 가질 수 있다.

따옴표로 구분을 하는데 우리가 따옴표를 출력하고 싶을땐 어떻게 해야할까?

우리는 이럴 때 이스케이프 문자를 사용하는것이 좋은 해결방법이 된다.

우리는 "Wesley&harry tistory"를 좋아한다

를 출력해보자. 

System.out.println(우리는 "Wesley&harry tistory"를 좋아한다);

에러가 잔뜩 뜨는것을 알 수 있다. eclipse의 장점이다.

"" 따옴표를 하나의 문자가 아닌 열고 닫는 기준점으로 인식해서이다.

변수에 저장을 해서 출력할 때도 마찬가지이다.

우리는 이러한 문제를 해결하기위해

이스케이프 문자 \" 를 사용하게된다.

String result = "우리는 \"Wesley&harry tistory\"를 좋아한다";
System.out.println(result);

따옴표를 넣고자 하는 앞에 역슬래시(\)가 들어가게 되면 어떻게 출력될까

우리는 "Wesley&harry tistory"를 좋아한다

이상태 그대로 출력이 가능한 것을 알 수 있다.

마지막 코드는 String타입의 result에 우리는 "Wesley&harry tistory"를 좋아한다를 저장한 후 System.out.println(result) result 변수명을 불러옴으로써 출력을 한것이다.

작은 따옴표 또한 같은 방법으로 출력이 가능하다.

자신을 위해 한번 사용하여보자.

반응형