2012-11-06 4 views
1

직렬 버스 장치에서 메시지를 수신해야하는 Java 응용 프로그램을 개발 중입니다.Java StringBuffer, ASCII 문자 및 직렬 통신

의도적으로 메시지를 처리하기 위해 StringBuffer을 사용해야했지만 고려해야 할 사항이 있습니다. 메시지에는 인쇄 할 수없는 문자 (예 : 0x02)가 포함되었을 수 있습니다.

StringBuffer 객체가 이러한 데이터를 처리하기에 적합한 지 궁금하거나, 수용 할 수있는 문자의 범위와 관련하여 몇 가지 제한이 있습니까? 그렇다면 어떤 객체가 적합할까요? 아니면 byte[]일까요?

+1

왜 ByteBuffer를 사용하지 않습니까? – giorashc

답변

1

StringBuffer를 사용할 수 있습니다.

Alex는 언급했듯이 모든 Char가 16 비트 유니 코드 값을 나타내는 Char 시퀀스로 구성됩니다.

스레드 안전성이 필요하지 않은 경우 StringBuilder을 대신 사용하는 것이 좋습니다. StringBuilder는 스레드로부터 안전하지 않으며 훨씬 빠릅니다.

0

내가 정확히 바이트 []와 같은 더 일반적인 뭔가 이상 또는 giorashc가 언급 한 바와 같이 ByteBuffer를 StringBuffer를 사용하려는 이유를 잘 모르겠지만, ...

StringBuffer를 본질적으로 String입니다. 문자열은 char 프리미티브 유형의 배열로 뒷받침됩니다. Java에서 char은 16 비트 유니 코드 값으로 0x0000에서 0xFFFF (65,535)의 범위를 제공합니다.