티스토리 뷰

FString

조작이 가능한 유일한 스트링 클래스

대소문자 변환, 부분 문자열 추출, 역순 등 메소드 존재.

검색과 변경, 다른 스트링과 비교도 가능

그래서 다른 스트링 클래스보다 무겁다.

 

FString 만들기

FString Value = FString(TEXT("Test"));

FString 비교하기

. 오버로딩된 == 연산자 사용

. FString 변수와 TCHAR* 배열 비교

. FString::Equals() 메소드 사용.

Equals 메소드 사용 시 ESearchCase Enum으로 대소문자 비교 유무 설정

대소문자 상관없는 비교는 ESearchCase::IgnoreCase

아니라면 ESearchCase::CaseSensitive 사용

Value.Equals(TEXT("Test"), ESearchCase::CaseSensitive);

FString 검색

. FString::Contains() 호출

찾고자 하는 문자열이 FString에 있다면 true를 반환, 아니면 false를 반환한다.

검색 대상에는 FString 과 TCHAR* 이 올 수 있다.

ESearchCase Enum으로 대소문자 비교 유무 설정 가능.

ESearchDir Enum으로 검색 방향을 지정

ESearchDir::FromEnd는 처음부터 시작하는 것.

Value.Contains(TEXT("Test"), ESearchCase::CaseSensitive, ESearchDir::FromEnd);

. FString::Find() 호출

찾고자 하는 문자열의 처음 인덱스를 반환. 못 찾으면  -1 반환

검색 대상 위와 동일하며 각 Enum으로 조건 설정 가능.

또 다른 옵션으론 검색 시작 인덱스 지정 가능.

Value.Find(TEXT("test"), ESearchCase::CaseSensitive, ESearchDir::FromEnd, 10);

FString 이어 붙이기

다른 변수를 FString으로 변환 후 원래 있던 FString에 붙일 수 있다.

연산자 +=, +를 사용한다.

String1 += String2;

Printf

스트링을 조립해 FString에 저장 가능하며 UE_LOG로 출력시킬 수 있다.

const FString TimeDesc = FString::Printf(TEXT("%d"), time);

 

각 자료형에 맞는 변환하는 방법은 공식문서 참조.

docs.unrealengine.com/ko/ProgrammingAndScripting/ProgrammingWithCPP/UnrealArchitecture/StringHandling/FString/index.html

 

FString

 

docs.unrealengine.com

 

FName

대소문자 구분 X, 변경 불가. 스트링에서 FName 변환 시 해시 테이블을 사용해 빠름.

문자열 사용에 있어 초경량 시스템 제공, 주어진 문자열이 재사용되도 데이터 테이블에 한 번만 저장.

사용처

- 콘텐츠 브라우저에서 새 애셋 이름 정할 때.

- 다이나믹 머터리얼 인스턴스의 파라미터 변경.

- 스켈레탈 메시에서 본에 접근할 때.

UE4에 DataTable 존재.

 

FName 비교하기

. ==연산자로 비교하기

true, false 반환. 실제 문자열 비교보단 Index 안의 값을 비교해 CPU가 절약이 된다.

. FName::Compare 사용하기

비교 값 보다 작으면 음수, 같으면 0, 크면 양수 반환

CompareValue = TestFName.Compare(OtherFName);

 

FText

현지화 처리를 위해 고안된 탄탄한 스트링 표현

검색 키워드 : text localization

숫자를 읽기 좋게 변환, %표현으로 변경. 

 

 

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함