자바 스트링 버퍼를 쓸경우 <tbody> 와 같은 html을 쓸때
html 엘리먼트 앞,뒤에
sb.append("<tbody>");
이런식으로 sb.append("를 앞에 붙이고 "); 를 뒤에 붙여야할 경우가 있다.
<tbody>
<tr>
<td class=\"no\">31</td>
3줄만 해보겠다. (맽 밑에 엔터가 있으면 좋다. 안그러면 맨 아래줄은 안된다.)
우선 앞에 붙이는거는 쉽다.
커서를 맨 앞에 두고 Alt+c 를 눌러 Text to Insert 하여
sb.append("
입력하고 OK 바튼을 클릭.
sb.append("<tbody>
sb.append(" <tr>
sb.append(" <td class=\"no\">31</td>
그럼 이렇게 나온다.
이제 맨 뒤에 ");를 붙여야 되는데
먼저 쉽게 , 만 붙여보는것을 먼저 해보자.
각 OS별 개행코드
윈도우: \r\n
UNIX: \n
MAC: \r
처음에 그냥 \n 만 했더니 자꾸 엔터가 먹으면서 바뀌어 졌다.
그래서 한참 고민을 하다가 윈도우는 \n가 아닌 \r\n을 사용했더니 되었다.
Ctrl + h 를 눌러서 아래부분 Regular Expression 라디오 버튼을 선택하고(이하 계속 선택)
Find what : \n
Replace with : ,\n
이렇게 하면
sb.append("<tbody>
,
sb.append(" <tr>
,
sb.append(" <td class=\"no\">31</td>
이렇게 엔터가 먹으면서 바뀐다. 이게 아니다.
그래서
Ctrl + h 를 눌러서
Find what : \r\n
Replace with : ,\r\n
이렇게 했더니 아래 처럼 정상적으로 엔터가 안먹고 바뀌었다.
sb.append("<tbody>,
sb.append(" <tr>,
sb.append(" <td class=\"no\">31</td>,
컴마는 쉬운데 "); 가 안되었다. 한참을 삽질한 끝에
)는 특수문자이다. 그래서 \를 붙여줘 escape 해야 한다.
마치 " 처럼.
그냥 했을경우
Find what : \r\n
Replace with : ");\r\n
이렇게 ) 에 대해 escape를 안했을 경우
sb.append("<tbody>"sb.append(" <tr>"sb.append(" <td class=\"no\">31</td>"
이렇게 된다. 이게 아니다.
그래서 ) 를 \ 를 사용해야 escape 해준다.
Find what : \r\n
Replace with : "\);\r\n
결과:
sb.append("<tbody>");
sb.append(" <tr>");
sb.append(" <td class=\"no\">31</td>");
이렇게 정상적으로 바뀐다.