1 / 10

문자와 문자열 , 텍스트

Chpt 11. 문자와 문자열 , 텍스트. overview. 문자 , 문자열은 가장 간단한 자료형 타입들에 대한 정보를 얻을 수 있음 적당히 포맷팅하고 조작하면 편리함 문자열을 효율적으로 이용하기 인코딩과 디코딩 암호 화. 문자. char 16 비트 유니코드 값 숫자랑 문자를 매치시켜놓음 이 관계들을 이용하면 적절한 로직을 만들 수 있음 atoi / itoa (C/C++ 함수 . C# 의 경우 Convert class 가 있음 ). 문자열. String

faunus
Download Presentation

문자와 문자열 , 텍스트

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chpt 11 문자와 문자열, 텍스트

  2. overview • 문자, 문자열은 가장 간단한 자료형 • 타입들에 대한 정보를 얻을 수 있음 • 적당히 포맷팅하고 조작하면 편리함 • 문자열을 효율적으로 이용하기 • 인코딩과디코딩 • 암호화

  3. 문자 • char • 16비트 유니코드 값 • 숫자랑 문자를 매치시켜놓음 • 이 관계들을 이용하면 적절한 로직을 만들 수 있음 • atoi / itoa (C/C++ 함수. C#의 경우 Convert class가 있음)

  4. 문자열 • String • 대부분의 언어에서 기본 타입으로 간주 • 고정된 값 • String s = new String(“Hello, world!”); // 에러 • String s = “!dlrow ,olleH”; // OK • String s = “Hello \n olleH”; • String s = “Hello” + “\n” + “olleH”; • Sealed class

  5. 문자열 다루기 • String.Intern/String.IsInterned • 해당 문자열을 해시테이블에 등록 • 해시테이블에 해당 문자열이 있는가? 문자열 반환 : 등록 후 반환 • 문자열을 보관해 두고 계속 불러낼 수 있음 • 어플리케이션 종료때까지 • 모든 문자열을 해시테이블에 저장 • 성능상의 문제가 있을 수 있으므로 비활성화 할수 있음 • 내용이 같은 문자열이라고 같은 레퍼런스를 가지고 있지 않는다! • 하지만 많은 언어들이 모듈의 크기를 줄이기 위해 내부적으로 그러한 동작을 수행 • 언제까지 그따위로 살 텐가?

  6. 동적으로 문자열 생성하기 • System.Text.StringBuilder • 편집이 가능한 문자열 객체 • ToString()을 호출하면 정적 문자열로 변신 • 다시 편집을 할 경우 새로운 StringBuilder을 생성 • 때문에 메모리 비효율이 종종 일어남

  7. 문자열 다루기- 포맷팅 • System.Object.ToString • Iformattable{string ToString(string format, IFormatProviderformatprovider);} • 문자열을 정해진 규칙에 따라 출력하도록 할 수 있음. • Hex , Dec , Oct , ¥,$,€ • YYYY : MM : DD : hh: mm • 로컬라이징 가능 • 사용자 정의 포맷팅 가능 • 코드를 쓰는 코드도 작성할 수 있음 • http://uguu.org/src_saitou_c.html • 문자열에서 객체 타입 인스턴스를 만들게 할 수 있음 • Public static Int32 Parse(String s, Numberstyle style, IFormatProvider provider)

  8. 문자열 다루기- 인코딩/ 디코딩 • 문자열을 비트값들로 만들고 혹은 반대로도 만듬 • 파일에 저장하거나 네트워크로 전송할 때 • 문자열을 바이트 단위로 저장하거나 혹은 그 반대로 푸는 규칙 • UTF-8, UTF-16, ASCII…. • 자물쇠와 열쇠?

  9. 문자열 다루기- 인코딩/ 디코딩 • System.Text.Encoding • 메모리 부담을 고려해 객체를 생성한 후 더 이상 새로 만들지 않음 • System.Text.Encoding.GetDecoder • Base-64라는 인코딩도 있음 • System.Convert타입이 제공하는 메소드로도인코딩/디코딩이 가능 <디코딩이 잘못됨> <바이트 밀림>

  10. 안전한 문자열 • String에 중요한 정보를 올려놓는다면? • 그리고 이를 메모리에 침투해서 빼간다면? • System.Security.SecureString • 비관리 메모리를 사용하므로 주의 • /unsafe • 어쨌든 읽으려면 관리되는 영역에 올라와야 하므로 • 최대한 빨리 쓰고 빨리 지울것 • String객체로 옮기면 안됨 • 힙 메모리에 String이 남게 됨!

More Related