목록string (6)
삶 가운데 남긴 기록 AACII.TISTORY.COM
자바에서 String을 치환할 때 보통 replace()와 replaceAll()을 사용합니다. 결론부터 말하자면 replaceAll()은 정규식이 올 수 있다는 것이 차이입니다. 일반적인 문자열을 치환할 때 속도가 빠른 replace() 사용하고 보다 복잡한 치환을 할 때는 정규식을 지원하는 replaceAll()을 사용합니다. 아래 예제에서 보면 replaceAll()은 . 이나 대괄호가 있으면 정규식으로 인식하여 replace()와 다른 결과가 나온다는 것을 알 수 있습니다. package test; public class ReplaceTest { public static void main(String[] args) { String sampleText = "co.kr//123-abcd//[/]-aa..

byte는 8 bits 2진법(0 or 1)으로 표현된 데이터 입니다. 16진법은 0~9, A~F 까지 기호를 사용하여 숫자를 표현(코딩)하는 방식입니다. 64진법은 0~9, a~z, A~Z, +, / 기호를 이용하여 숫자를 표현(코딩)하는 방식입니다. byte array 는 2진수로 이루어진 데이터 입니다만 사람이 읽기 어려우므로 16진법(Hex digits)이나 64진법(base64)으로 변환하여 2진수의 배열(byte array)을 문자처럼 사용하기도 합니다. java에서 byte 데이터를 16진수 String으로 바꿀 때 보통 아래와 같은 소스 코드를 이용합니다. Integer.toString(((int) bytedata & 0xff)+0x100, 16).substring(1); Integer.t..
javascript는 replaceAll 함수가 없어서 비슷한 기능을 하도록 구현해봅시다. 1. 정규식을 이용한 방법 var str1 = "2021/04/07"; var str2 = str1.replace(/\//gi,"-"); /를 표기하기 위해서는 이스케이프 문자 \와 같이 사용합니다. 위의 정규식은 /를 모두 - 으로 변경하는 효과가 있습니다. g는 문자열 전역 검색, i는 대소문자 구분안함 이라는 옵션입니다. 2. 함수를 만드는 방법 function replaceAll(originalStr, searchStr, replaceStr){ return originalStr.split(searchStr).join(replaceStr); } replaceAll("2021/04/07", "/", "-")

바이트 배열을 문자열로 변환 문자열은 본래 바이트(byte/char)의 배열로 되어있습니다. 자바에서는 이를 클래스나 기본 데이터 타입처럼 String 을 다룰 수 있습니다. public class ByteToString { public static void main(String[] args) { byte[] bytes = {72, 101, 108, 108, 111, 32, 74, 97, 118, 97 }; //Hello Java String str1 = new String(bytes); System.out.println(str1); String str2 = new String(bytes, 6, 4);//6번째 인덱스부터 길이가 4만큼 System.out.println(str2); } } 실행 결과 He..

MFC 문자열 처리 c언어와 c++ 에서는 string이라는 자료구조를 컴파일러 차원에서 지원하고 있지 않습니다. (가장 많이 쓰는 자료구조형임에도 불구하고 옛날 언어라...) 그래서 c/c++에서는 string을 char 의 배열에 끝에 널문자(\0)를 넣어 포인터로 관리합니다. Windows 에서는 이런 string처리를 위해 char* 를 대신해 LPSTR, LPCSTR, LPTSTR, LPCTSTR , LPWSTR, LPCWSTR 같은 자료형을 지원하고 있습니다. (안그래도 불편한데 더 불편하게 만들었습니다. 헝가리안 표기법의 유산이지요.) 그래서 이 암호같은 약자들의 뜻을 알아보도록 하겠습니다. LP는 long pointer 16bit 시절 포인터는 모두 16bit였고 24bit 메모리를 lon..

string class Header string s, s1, s2, s3; .assign(): 문자열 할당 //인수로 지정된 문자열을 할당 s1.assign("ABCDEFGH"); //s1="ABCDEFGH" //문자를 특정 개수 만큼 문자열에 할당 s2.assign(3, 'A'); //s2 = "AAA" //문자열의 지정된 인덱스 부터 특정 개수를 복사해서 할당 s3.assign(s1, 2, 4) //s3 = "CDEF" .append(): 문자열 추가 //기존 문자열 뒤에 추가 s.append("ABCDEF"); //s = "ABCDEF" //문자를 특정 개수 만큼 기존 문자열 뒤에 추가 s.append(3,'a'); //s = "ABCDEFaaa" //문자열의 지정된 인덱스 부터 특정 개수를 복사해..