수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • C언어
    • 비주얼베이직
  • 결혼생활
    • 출산/육아
    • 결혼준비
    • 엄마이야기방
  • 일상생활
    • 면접
    • 취업
    • 진로선택
  • 교육
    • 교육일반
    • 아이교육
    • 토익
    • 해외연수
    • 영어
  • 취미생활
    • 음악
    • 자전거
    • 수영
    • 바이크
    • 축구
  • 기타
    • 강아지
    • 제주도여행
    • 국내여행
    • 기타일상
    • 애플
    • 휴대폰관련
  • 프로그램 개발일반
  • C언어
  • 비주얼베이직

[질문] 2Byte 단어의 첫 바이트 구분 방법

핫다홍

2023.04.01

안녕하세요^^;;
String str=안1녕;

위처럼 5바이트의 문자열이 있다고 가정한다면..
byte[] b = str.getBytes()를 하게되면 바이트 단위로 조각나게 됩니다.
이때, b[2]는 ASCII문자라서 1바이트 문자열입니다.

하지만 b[0],b[1]또는b[3],b[4]는 원래부터 2바이트 문자열입니다.
이렇게 b[2]를 제외한 한글을 포함해서 2바이트 문자열중특정 위치가

2Byte문자열의 시작바이트인지 아닌지 편하게 체크하는 방법이 있는지요??
위에서는 b[0]과 b[3]이 2Byte문자중 시작 바이트가 되겠죠^^;;
System.out.println(chk(b[0]);

System.out.println(chk(b[3]);위의 chk()라는 임의의 함수처럼 전달된 Byte가 특정 문자의 시작 바이트 인지

아닌지 자바 자체에서 제공하는 체크방법이 있으면 답변 부탁드리겠습니다^^
현재는 위 문제를 해결하기위해 무식하게 무조건첫번째 바이트부터

지정된 위치까지를 직접 한/영체크를 하면서 계산하고 있습니다-_-;;

문자열이 위처럼 짧으면 모르겠지만 문자열이 길어지고 체크를 원하는 위치가 뒤로 갈 수록데미지가 크다는--;;
어렴풋한 기억으로는 예전에 특정 단어의 범위및 범주를 체크하는 방법을본 기억이 있는거 같아서 질문해봅니다.

신청하기





COMMENT

댓글을 입력해주세요. 비속어와 욕설은 삼가해주세요.

  • 글고운

    다이렉트로 99번째 위치에서 추출 후 사용하고자 하는데..
    현재로는 부득이 첫 글자부터 카운팅 하는 방법 뿐이 없나 봅니다. 좋은하루되세요.

  • 으뜸

    답변 감사합니다만^^
    해당 자료는 지정된 문자열의 첫 글자부터 계속 판단하는 방식이라서
    제가 임시로 구현한것과 같은 방식입니다.
    문자열이 100글자일때 99번째에서 절단하려면 0부터 99까지 카운팅하는 방식이거든요.

  • 새얀

    아.. 쉽게 보면... 게시판의 목록에서 게시글이 20Byte를 초과하면 20Byte에서 절단후 ... 을 찍는것과 유사합니다.
    이때 20Byte의 글자가 한글의 첫 바이트라면... 글자가 깨지겠죠^^
    (JDK 자체에서 제공하는 Byte추출 기능은 O/S와 JDK버전에 따라 결과가 달라지더군요)

  • 비내리던날

    byte[] b = str.getbytes() 으로 바이트 처리된 각각의 문자값을 출력하면...
    128보다 크거나 작은건 의미 없을듯 싶습니다^^
    현재로선 무식한 방법이지만-_- 수다님 말씀처럼
    문자열의 첫 글자부터 charat을 이용해서 일일이 처리하고 있는데...
    이렇게 되면 문자열 길이에 따라서 속도가 너무 처지거든요-_-;;
    그래서 지정된 위치의 글자를 바로 알아 내고자 하는데.. 기억이 안나네요..ㅠㅠ;;

  • 무들

    답변 감사합니다^^;;
    질문 드린것처럼 주 목적은 스트링의 바이트 처리입니다^^;;
    특정 위치의 바이트를 추출하는게 목적이거든요.
    예를들어 인덱스 0부터 10까지 추출이라거나...
    자바 자체의 String()클레스가 유사 기능을 제공해주지만
    2Byte 문자에 대해서는 오동작 하더군요^^
    그리고 charAt의 경우는 바이트가 아닌 문자 처리라서 힘들듯 싶구요.

  • 아리알찬

    charAt(int i) 메쏘드로 한문자씩 떼와서 int로 변환(굳이 할필요는 없음.-_-)해서 윗분말씀 처럼 128보다 작으면 아스키 문자고 크면 유니코드 문자고 그렇게 될것 같은데요.. 한글 유니코드 할당범위 내에 들어가는 수치라면 한글이고 아니면 아스키나 다른 나라 문자고..

    혹시 렉서만드신다면 문자를 char나 int단위로 처리하는게 몸에 좋습니다.. 경험상..^^

  • Schokolade

    n번째 byte 가 2바이트 문자에 속하는지 보시기 위해서라면..
    n번째 byte 가 128 보다 크다면 2byte 문자의 시작이고,

    n번째 byte 가 128 보다 작다면
    n-1 번째의 문자 값을 보고, 이 값이 128 보다 크다면 n번째 byte 는 2byte 문자의 뒷바이트,
    n-1 번째의 문자 값을 보고, 이 값이 128 보다 작다면 n번째 byte 는 1byte 문자이겠군요~ ^_^

    지금 머릿속으로 생각한거라~ ^_^;; 직접 확인해 보

  • 겨루

    2바이트 문자의 첫번째 바이트 값은 아스키코드 128 보다 큽니다 ^_^

번호 제 목 글쓴이 날짜
2696043 제이쿼리 .scroll() 관련 질문드립니다 이거이름임 2025-05-26
2695984 마크업상으로 하단에 있으나 우선적으로 이미지파일을 다운로드받는 방법 (1) 들꿈 2025-05-25
2695934 tr 속성값 (9) 새 2025-05-25
2695905 ASP로 개발됐을 때 css가 달라져요 ㅠㅠ (4) 슬아라 2025-05-24
2695878 form을 이용한 다른 페이지로 넘기는 방법을 알려주세요 (1) 핫파랑 2025-05-24
2695844 저기 암호화 및 복호화 프로그램.. 만들어볼려는대 (2) 한빛 2025-05-24
2695814 [질문] PDA에서 애플릿이 가능한가요? (1) 봄시내 2025-05-24
2695785 웹 설정 도와줄분 화이트캣 2025-05-23
2695730 갑자기 기억이 안나는데 accesskey 속성.. 빛나라 2025-05-23
2695702 [질문] Java 버전 차이에 의한 오류?!! (2) 검사 2025-05-23
2695672 자바 임베디드 쪽으로 배우고 싶은데요..질문이요.. (1) 뽀그리 2025-05-22
2695647 헉! 이클립스(v3.1)에서 발생되는 널포인트 익셉션? ;;; (3) 아빠몬 2025-05-22
2695586 IFRAME 캐싱 질문 봄나비 2025-05-22
2695498 [질문]실행가능한 jar파일.. 정말 이해가 안가네요... ㅡㅜ;; 터1프한렩 2025-05-21
2695468 자바랑 이클립스에서요.. 스킬 2025-05-21
2695375 Mysql 연동하는 자바 질문있습니다. 아리솔 2025-05-20
2695319 파워포인트 파일을 저장할 수 있을까요? 시윤 2025-05-19
2695289 [질문]Tween 값의 정도를 알고 싶습니다. 타마 2025-05-19
2695238 c 와 c++의 시작 (10) ChocoHoilc 2025-05-18
2695215 탑메뉴의 repeat-x .배경이 두가지에요ㅠ ㅠ 널위해 2025-05-18
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

수다닷컴 | 여러분과 함께하는 수다토크 커뮤니티 수다닷컴에 오신것을 환영합니다.
사업자등록번호 : 117-07-92748 상호 : 진달래여행사 대표자 : 명현재 서울시 강서구 방화동 890번지 푸르지오 107동 306호
copyright 2011 게시글 삭제 및 기타 문의 : clairacademy@naver.com