델파이 문자열 함수 종류 및 예시
델파이에서 문자열을 다루는 다양한 함수들은 대부분 SysUtils
유닛에 포함되어 있습니다.
사용해야 할 PAS 유닛
uses SysUtils;
1. 길이 및 개별 문자 접근
Length
함수
기능: 문자열의 길이를 반환합니다.
예시:
var
MyString: string;
Len: Integer;
begin
MyString := '안녕하세요';
Len := Length(MyString);
ShowMessage(Format('문자열 길이: %d', [Len]));
// 결과 예시: 문자열 길이: 5
end;
문자열 인덱싱 []
기능: 문자열의 특정 위치에 있는 문자(Char)에 접근합니다. 인덱스는 1부터 시작합니다.
예시:
var
MyString: string;
FirstChar: Char;
begin
MyString := 'Delphi';
FirstChar := MyString[1]; // 첫 번째 문자
ShowMessage(Format('첫 번째 문자: %s', [FirstChar]));
// 결과 예시: 첫 번째 문자: D
end;
2. 문자열 조작 (추출, 삽입, 삭제, 교체)
Copy
함수
기능: 문자열의 특정 위치에서 지정된 길이만큼의 부분 문자열을 추출합니다. Copy(Source, Index, Count)
예시:
var
MyString: string;
Sub: string;
begin
MyString := 'ABCDEFG';
Sub := Copy(MyString, 3, 4); // 3번째 위치에서 4글자 추출
ShowMessage(Format('추출된 문자열: %s', [Sub]));
// 결과 예시: 추출된 문자열: CDEF
end;
Pos
함수
기능: 원본 문자열 내에서 특정 부분 문자열이 처음 나타나는 시작 위치(인덱스)를 찾습니다. 찾지 못하면 0을 반환합니다. Pos(SubString, SourceString)
예시:
var
MyString, SearchFor: string;
Position: Integer;
begin
MyString := 'Hello World';
SearchFor := 'World';
Position := Pos(SearchFor, MyString);
ShowMessage(Format('%s의 시작 위치: %d', [SearchFor, Position]));
// 결과 예시: World의 시작 위치: 7 (W는 7번째 문자)
SearchFor := 'Delphi';
Position := Pos(SearchFor, MyString);
ShowMessage(Format('%s의 시작 위치: %d', [SearchFor, Position]));
// 결과 예시: Delphi의 시작 위치: 0
end;
Delete
프로시저
기능: 문자열의 특정 위치에서 지정된 길이만큼의 문자를 삭제합니다. Delete(TargetString, Index, Count)
예시:
var
MyString: string;
begin
MyString := 'abcdefg';
Delete(MyString, 3, 2); // 3번째 위치에서 2글자(cd) 삭제
ShowMessage(Format('삭제 후 문자열: %s', [MyString]));
// 결과 예시: 삭제 후 문자열: abefg
end;
Insert
프로시저
기능: 대상 문자열의 특정 위치에 다른 문자열을 삽입합니다. Insert(SourceString, TargetString, Index)
예시:
var
MyString, ToInsert: string;
begin
MyString := 'Hello World';
ToInsert := 'Delphi ';
Insert(ToInsert, MyString, 7); // 'World' 앞에 'Delphi ' 삽입 (7번째 위치)
ShowMessage(Format('삽입 후 문자열: %s', [MyString]));
// 결과 예시: 삽입 후 문자열: Hello Delphi World
end;
StringReplace
함수 (권장) / AnsiReplaceStr
함수
기능: 문자열 내에서 특정 부분 문자열을 다른 문자열로 모두 또는 처음 나타나는 것만 교체합니다. StringReplace(Source, OldText, NewText, Flags)
형식을 주로 사용합니다. Flags
에 [rfReplaceAll]
을 넣어 모두 교체할 수 있습니다.
예시:
var
MyString, Old, New, ResultString: string;
begin
MyString := 'apple banana apple';
Old := 'apple';
New := 'orange';
// 모든 'apple'을 'orange'로 교체
// [rfReplaceAll] 플래그 사용
ResultString := StringReplace(MyString, Old, New, [rfReplaceAll]);
ShowMessage(Format('교체 후 문자열: %s', [ResultString]));
// 결과 예시: 교체 후 문자열: orange banana orange
end;
Concat
함수 또는 +
연산자
기능: 두 개 이상의 문자열을 결합합니다. +
연산자가 더 일반적으로 사용됩니다.
예시:
var
Str1, Str2, Str3, FullString: string;
begin
Str1 := 'Hello';
Str2 := ' ';
Str3 := 'World';
FullString := Str1 + Str2 + Str3; // + 연산자 사용
ShowMessage(Format('결합된 문자열: %s', [FullString]));
// 결과 예시: 결합된 문자열: Hello World
// Concat 함수 사용 예시 (세 개 이상의 문자열 결합에 편리)
FullString := Concat(Str1, Str2, Str3, '!');
ShowMessage(Format('결합된 문자열 (Concat): %s', [FullString]));
// 결과 예시: 결합된 문자열 (Concat): Hello World!
end;
3. 대소문자 변환 및 공백 제거
UpperCase
함수
기능: 문자열 내 모든 소문자를 대문자로 변환합니다.
예시:
var
MyString, Upper: string;
begin
MyString := 'Hello World';
Upper := UpperCase(MyString);
ShowMessage(Format('대문자: %s', [Upper]));
// 결과 예시: 대문자: HELLO WORLD
end;
LowerCase
함수
기능: 문자열 내 모든 대문자를 소문자로 변환합니다.
예시:
var
MyString, Lower: string;
begin
MyString := 'Hello World';
Lower := LowerCase(MyString);
ShowMessage(Format('소문자: %s', [Lower]));
// 결과 예시: 소문자: hello world
end;
Trim
함수
기능: 문자열의 시작과 끝에 있는 공백 문자(스페이스, 탭 등)를 모두 제거합니다.
예시:
var
MyString, Trimmed: string;
begin
MyString := ' Hello World ';
Trimmed := Trim(MyString);
ShowMessage(Format('Trim 결과: "%s"', [Trimmed])); // 결과 예시: Trim 결과: "Hello World"
end;
TrimLeft
함수
기능: 문자열의 시작 부분에 있는 공백 문자만 제거합니다.
예시:
var
MyString, Trimmed: string;
begin
MyString := ' Hello World ';
Trimmed := TrimLeft(MyString);
ShowMessage(Format('TrimLeft 결과: "%s"', [Trimmed]));
// 결과 예시: TrimLeft 결과: "Hello World "
end;
TrimRight
함수
기능: 문자열의 끝 부분에 있는 공백 문자만 제거합니다.
예시:
var
MyString, Trimmed: string;
begin
MyString := ' Hello World ';
Trimmed := TrimRight(MyString);
ShowMessage(Format('TrimRight 결과: "%s"', [Trimmed]));
// 결과 예시: TrimRight 결과: " Hello World"
end;
4. 타입 변환 및 포맷팅
이 함수들은 다른 데이터 타입을 문자열로 변환하거나, 지정된 형식으로 문자열을 만드는 데 사용됩니다.
IntToStr
함수
기능: Integer 값을 문자열로 변환합니다.
예시:
var
Count: Integer;
CountStr: string;
begin
Count := 123;
CountStr := IntToStr(Count);
ShowMessage('카운트: ' + CountStr);
// 결과 예시: 카운트: 123
end;
FloatToStr
함수
기능: 부동 소수점 값을 문자열로 변환합니다. 시스템 설정을 따릅니다.
예시:
var
Value: Double;
ValueStr: string;
begin
Value := 123.456;
ValueStr := FloatToStr(Value);
ShowMessage('값: ' + ValueStr);
// 결과 예시: 값: 123.456 (시스템 설정에 따라 다를 수 있음)
end;
FloatToStrF
함수
기능: 부동 소수점 값을 지정된 포맷과 정밀도로 문자열로 변환합니다. (`SysUtils`에 있습니다.)
포맷 종류 예시: ffCurrency
, ffFixed
, ffExponent
등
예시:
var
Value: Double;
ValueStr: string;
begin
Value := 123.45678;
// 소수점 이하 2자리 고정 형식
// 값, 형식, 전체 자릿수, 소수점 이하 자릿수
ValueStr := FloatToStrF(Value, ffFixed, 10, 2);
ShowMessage('고정 형식: ' + ValueStr);
// 결과 예시: 고정 형식: 123.46
// 통화 형식 (시스템 설정 따름)
ValueStr := FloatToStrF(Value, ffCurrency, 10, 2);
ShowMessage('통화 형식: ' + ValueStr);
// 결과 예시: 통화 형식: ₩123.46 (한국 설정 시)
end;
BoolToStr
함수
기능: Boolean 값을 문자열 ('TRUE' 또는 'FALSE' 또는 지정한 문자열)로 변환합니다.
예시:
var
IsActive: Boolean;
StatusStr: string;
begin
IsActive := True;
// 결과 예시: 'TRUE' 또는 'FALSE'
StatusStr := BoolToStr(IsActive);
ShowMessage('상태 1: ' + StatusStr);
// 두 번째 인자가 True이면 0/1 반환 (1)
StatusStr := BoolToStr(IsActive, True);
ShowMessage('상태 2: ' + StatusStr);
// 결과 예시: '1'
// True/False 시 문자열 직접 지정
StatusStr := BoolToStr(IsActive, '활성', '비활성');
ShowMessage('상태 3: ' + StatusStr);
// 결과 예시: '활성'
end;
Format
함수
기능: 지정된 포맷 문자열과 인자 목록을 사용하여 복합적인 포맷의 문자열을 생성합니다. 가장 강력한 포맷 함수입니다. (`SysUtils`에 있습니다.)
형식 지정자 예시: %s
, %d
, %f
, %n
등
예시:
var
Name: string;
Age: Integer;
FormattedString: string;
begin
Name := '김철수';
Age := 25;
FormattedString := Format('사용자 정보: 이름은 %s이고, 나이는 %d세 입니다.', [Name, Age]);
ShowMessage(FormattedString);
// 결과 예시: 사용자 정보: 이름은 김철수이고, 나이는 25세 입니다.
end;
DateToStr
, TimeToStr
, DateTimeToStr
함수는 SysUtils
에 있으며, 날짜/시간 변환에 사용됩니다.'코딩 이야기 > 델파이 코딩' 카테고리의 다른 글
델파이 Round 함수 동작 방식 및 주의사항 (0) | 2025.04.21 |
---|---|
델파이 숫자 함수 종류 및 예시 (0) | 2025.04.21 |
델파이 문자열 포맷 함수 종류 및 예시 (0) | 2025.04.21 |
델파이 날짜/시간 함수 종류 및 예시 (0) | 2025.04.21 |
델파이 날짜 포맷 종류 및 예시 (0) | 2025.04.21 |