ByteBuffer to String

from Java 2008/09/30 13:18
ByteBuffer buffer = ByteBuffer.allocate(1024);
buffer.put("aabcde".getBytes());
byte[] bytes = new byte[buffer.remaining()];
buffer.get(bytes);
String s = new String(bytes);

위가 아니라 아래처럼 해야 됩니다. ^^;;

ByteBuffer buffer = ByteBuffer.allocate(1024);
buffer.put("aabcde".getBytes());
byte[] bytes = new byte[buffer.position()];
buffer.flip();       
buffer.get(bytes);
String s = new String(bytes);
System.out.println(s);
먼저 HTML 태그는 < 로 시작해서 > 로 끝나고, 종료 태그의 경우는 </ 로 시작하거나 또는 />로 끝난다.
따라서, 다음과 같은 정규 표현식은 HTML 태그를 모두 포함하게 된다.
<(/)?([a-zA-Z]*)(\\s[a-zA-Z]*=[^>]*)?(\\s)*(/)?>

자바 1.4부터 String.repalceAll(String regex, String replacemenet) 메소드를 제공하는데, 이 메소드는 문자열에서 regex의 정규 표현식에 일치하는 부분을 replacement로 바꿔주는 기능을 제공한다.

따라서, 특정 문자열에 HTML 태그를 제거하려면 위의 정규 표현식을 다음과 같이 적용하면 된다.
String text = "......";
String textWithoutTag = text.replaceAll("<(/)?([a-zA-Z]*)(\\s[a-zA-Z]*=[^>]*)?(\\s)*(/)?>", "");  
import java.util.*;
public class Test
{
  public static void main(String[] args)
  {
    String data = " <a href="aaa.gif">";
    data += "Afdskjhasdkljhaskld" + "</a>";
    System.out.println( data.replaceAll("(?:<!--.*?(?:--.*?--\\s*)*.*?-->)|(?:<(?:[^>'\"]*|\".*?\"|'.*?')+>)","") );
  }
}

String 인코딩 변경

from Java 2008/02/19 22:08
String data = "데이타"; 
String utf8 = new String(data.getBytes("UTF-16"), "UTF-8");
String utf16 = new String(data.getBytes("UTF-8"), "UTF-16");

표준 캐릭터셋

Java 플랫폼의 구현은 모두 다음의 표준 캐릭터셋를 지원 할 필요가 있습니다. 지원 되고 있는 그 외의 캐릭터셋에 대해서는 구현의 릴리스 노트를 참조하십시오. 그러한 옵션의 캐릭터셋의 동작은 구현 마다 다를 가능성이 있습니다.

캐릭터셋

설명

US-ASCII 7 비트 ASCII (ISO646-US/Unicode 캐릭터셋의 Basic Latin 블록)
ISO-8859-1   ISO Latin Alphabet No. 1 (ISO-LATIN-1)
UTF-8 8 비트 UCS 변환 형식
UTF-16BE 16 비트 UCS 변환 형식, 빅 endian 바이트순서
UTF-16BE 16 비트 UCS 변환 형식, little endian 바이트순서
UTF-16 16 비트 UCS 변환 형식, 옵션의 바이트순서 마크로 식별되는 바이트순서

'Java' 카테고리의 다른 글

Iterator보다 빠르게 Collection의 오브젝트 처리  (0) 2008/02/21
정규 표현식을 사용하여 HTML 태그 제거하기  (0) 2008/02/19
String 인코딩 변경  (0) 2008/02/19
Boxing과 UnBoxing  (0) 2008/02/19
객체생성 방법  (0) 2008/02/14
Tag // Encoding, String
헐.. 출처는 http://www.mimul.com/pebble/default/2007/11/26/1196088660000.html 입니다..

아주 기본적이지만 잊기 쉽기 때문에 선택 기준을 적어봅니다. 실력은 아주 기본적인 곳에서 시작되죠. ^^

1. String 객체는 불변이기 때문에 변하지 않는 문자열은 String을 사용한다.
2. StringBuilder는 비동기방식이기 때문에 Single Thread 환경하에서, 변화되는 문자열의 사용한다.
3. StringBuffer 동기방식으로 저장되기 때문에 멀티쓰레드로 접근하거나 문자열이 변경될 경우에 사용한다.

'Java' 카테고리의 다른 글

Boxing과 UnBoxing  (0) 2008/02/19
객체생성 방법  (0) 2008/02/14
String, StringBuffer, StringBuilder 선택 기준  (0) 2008/02/14
Generic Method 및 익셉션 처리 팁  (0) 2008/02/14
Initializing Collection  (0) 2008/02/14