sitelink1 | |
---|---|
sitelink2 | |
sitelink3 | |
sitelink4 | |
sitelink5 | |
sitelink6 |
자바프로그램 내에서 문자열을 처리하다보면 escape sequence문자가 사라지는 경우가 있다.
보통 정규식을 사용하는 문자열 처리 함수(replaceAll)에서 이러한 현상이 나타나는데
이렇게 사라지는 현상을 방지하거나 출력 문자열에 원하는 형태로 출력하기 위해서 변형시킬 필요가 있다.
역으로 문자열 형태의 escape sequence를 원형으로 변환하기 위해서는 JDK5부터 지원하는 Formatter 클래스를
이용해야 할 듯 하다. 자세한 것은 링크를 참조한다. -> System.out.printf()
첨부파일은 관련 유틸 클래스이다.
·미리보기 | 소스복사·
- /**
- * source 내의 모든 escape sequence를 문자열로 변환한다.
- * @param source
- * @return
- */
- public static String replaceEscapeSequence(String source) {
- if (source == null) {
- return source;
- }
- StringBuffer newSource = new StringBuffer();
- char[] sourceChar = source.toCharArray();
- for (int i = 0; i < sourceChar.length; i++) {
- if (sourceChar[i] == 'r') { //Carridge Return
- newSource.append('');
- newSource.append('r');
- continue;
- } else if (sourceChar[i] == 'n') { //New Line
- newSource.append('');
- newSource.append('n');
- continue;
- } else if (sourceChar[i] == 't') { // Tab
- newSource.append('');
- newSource.append('t');
- continue;
- } else if (sourceChar[i] == 'b') { //Back space
- newSource.append('');
- newSource.append('b');
- continue;
- } else if (sourceChar[i] == 'f') { //Form Feed
- newSource.append('');
- newSource.append('f');
- continue;
- } else if (sourceChar[i] == ''') { //Single Quotation
- newSource.append('');
- newSource.append(''');
- continue;
- } else if (sourceChar[i] == '"') { //Double Quotation
- newSource.append('');
- newSource.append('"');
- continue;
- } else if (sourceChar[i] == '') { //Backslash
- newSource.append('');
- newSource.append('');
- continue;
- }
- newSource.append(sourceChar[i]);
- }
- return newSource.toString();
- }