Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

텍스트 비교

문자형 배열과 string형 배열의 텍스트를 여러 가지 방법으로 비교합니다. string형 배열은 R2016b에서 추가되었습니다. 관계 연산자와 strcmp 함수를 사용하여 string형 배열과 문자형 벡터를 비교할 수 있습니다. 다른 유형의 배열을 정렬할 때와 마찬가지로 sort 함수를 사용하여 string형 배열을 정렬할 수 있습니다. MATLAB®은 텍스트 조각의 문자를 검사할 수 있는 함수도 제공합니다. 예를 들어, 문자형 벡터나 string형 배열에서 영문자 또는 공백 문자인 문자를 파악할 수 있습니다.

string형 배열이 서로 동일한지 비교하기

관계 연산자 ==~=를 사용하여 string형 배열이 서로 동일한지 비교할 수 있습니다. string형 배열을 비교하면 출력값은 관계가 true인 경우 1을 포함하고, true가 아닌 경우 0을 포함하는 논리형 배열이 됩니다.

string형 스칼라를 두 개 만듭니다. R2017a부터는 큰따옴표를 사용하여 string형을 생성할 수 있습니다.

str1 = "Hello";
str2 = "World";
str1,str2
str1 = 
"Hello"
str2 = 
"World"

str1str2가 동일한지 비교합니다.

str1 == str2
ans = logical
   0

여러 요소를 가진 string형 배열과 string형 스칼라를 비교합니다.

str1 = ["Mercury","Gemini","Apollo";...
        "Skylab","Skylab B","International Space Station"];
str2 = "Apollo";
str1 == str2
ans = 2x3 logical array

   0   0   1
   0   0   0

string형 배열과 문자형 벡터를 비교합니다. 변수 중 하나가 string형 배열이라면 비교를 수행할 수 있습니다.

chr = 'Gemini';
TF = (str1 == chr)
TF = 2x3 logical array

   0   1   0
   0   0   0

TF를 사용하여 str1의 요소를 참조해 Gemini와 일치하는 문자열 요소를 추출합니다. 논리형 배열을 사용하여 배열의 요소를 참조할 수 있습니다.

str1(TF)
ans = 
"Gemini"

~= 연산자를 사용하여 동일하지 않은지 비교합니다. str1의 요소를 참조하여 'Gemini'와 일치하지 않는 요소를 추출합니다.

TF = (str1 ~= chr)
TF = 2x3 logical array

   1   0   1
   1   1   1

str1(TF)
ans = 5x1 string
    "Mercury"
    "Skylab"
    "Skylab B"
    "Apollo"
    "International Space Station"

두 개의 비 스칼라 string형 배열을 비교합니다. 두 개의 비 스칼라 배열을 비교할 경우 두 배열의 크기가 동일해야 합니다.

str2 = ["Mercury","Mars","Apollo";...
        "Jupiter","Saturn","Neptune"];
TF = (str1 == str2)
TF = 2x3 logical array

   1   0   1
   0   0   0

str1의 요소를 참조하여 일치하는 요소를 추출합니다.

str1(TF)
ans = 2x1 string
    "Mercury"
    "Apollo"

다른 관계 연산자를 사용하여 string형 배열 비교하기

관계 연산자 >, >=, <, <=을 사용하여 문자열을 비교할 수도 있습니다. 대문자로 시작하는 문자열이 소문자로 시작하는 문자열 앞에 옵니다. 예를 들어, 문자열 "ABC""abc"보다 작습니다. 숫자와 일부 문장 부호도 문자 앞에 옵니다.

"ABC" < "abc"
ans = logical
   1

> 연산자를 사용하여 이름을 포함하는 string형 배열과 다른 이름을 비교합니다. 이름 Sanchez, de Ponte, NashS, d, N이 모두 M보다 크므로 Matthews 뒤에 옵니다.

str = ["Sanchez","Jones","de Ponte","Crosby","Nash"]; 
TF = (str > "Matthews")
TF = 1x5 logical array

   1   0   1   0   1

str(TF)
ans = 1x3 string
    "Sanchez"    "de Ponte"    "Nash"

string형 배열 정렬하기

string형 배열을 정렬할 수 있습니다. MATLAB®은 UTF-16 문자 인코딩 체계를 사용하여 문자를 Unicode®로 저장합니다. 문자형 배열과 string형 배열은 UTF-16 코드 포인트 순서에 따라 정렬됩니다. ASCII 문자에도 해당되는 문자의 경우 이 순서에 따라 대문자가 소문자 앞에 옵니다. 숫자와 일부 문장 부호도 문자 앞에 옵니다.

string형 배열 str을 정렬합니다.

sort(str)
ans = 1x5 string
    "Crosby"    "Jones"    "Nash"    "Sanchez"    "de Ponte"

2×3 string형 배열을 정렬합니다. sort 함수는 각 열의 요소를 개별적으로 정렬합니다.

sort(str2)
ans = 2x3 string
    "Jupiter"    "Mars"      "Apollo" 
    "Mercury"    "Saturn"    "Neptune"

각 행의 요소를 정렬하려면 두 번째 차원을 따라 str2를 정렬하십시오.

sort(str2,2)
ans = 2x3 string
    "Apollo"     "Mars"       "Mercury"
    "Jupiter"    "Neptune"    "Saturn" 

문자형 벡터 비교하기

문자형 벡터와 문자형 벡터로 구성된 셀형 배열을 서로 비교할 수 있습니다. strcmp 함수를 사용하여 두 개의 문자형 벡터를 비교하거나 strncmp를 사용하여 처음 N개 문자를 비교합니다. strcmpistrncmpi를 사용하여 대/소문자 구분 없이 비교를 수행할 수 있습니다.

strcmp 함수를 사용하여 두 개의 문자형 벡터를 비교해 보겠습니다. 이 예제에서 chr1chr2는 같지 않습니다.

chr1 = 'hello';
chr2 = 'help';
TF = strcmp(chr1,chr2)
TF = logical
   0

참고로, MATLAB strcmp는 C 버전의 strcmp와 다릅니다. C 버전의 strcmp는 두 개의 문자형 배열이 같을 경우 0을 반환하고, 다를 경우 0이 아닌 값을 반환합니다.

strncmp 함수를 사용하여 처음 두 개 문자를 비교합니다. 두 문자형 벡터가 모두 문자 he로 시작하므로 TF1입니다.

TF = strncmp(chr1,chr2,2)
TF = logical
   1

문자형 벡터로 구성된 두 개의 셀형 배열을 비교합니다. strcmp는 셀형 배열과 크기가 동일한 논리형 배열을 반환합니다.

C1 = {'pizza'; 'chips'; 'candy'};
C2 = {'pizza'; 'chocolate'; 'pretzels'};
strcmp(C1,C2)
ans = 3x1 logical array

   1
   0
   0

string형 배열과 문자형 배열 내에 포함된 문자 검사하기

isstrprop, isletter, isspace 함수를 사용하여 string형 배열 또는 문자형 배열 내에 포함된 문자를 검사할 수 있습니다.

  • isstrprop 함수는 string형 배열이나 문자형 배열에 포함된 문자를 검사합니다.

  • isletter 함수와 isspace 함수는 문자형 배열 내에 포함된 문자만 검사합니다.

문자형 벡터에서 공백 문자인 문자를 확인합니다. isspacechr과 크기가 동일한 논리형 벡터를 반환합니다.

chr = 'Four score and seven years ago';
TF = isspace(chr)
TF = 1x30 logical array

   0   0   0   0   1   0   0   0   0   0   1   0   0   0   1   0   0   0   0   0   1   0   0   0   0   0   1   0   0   0

isstrprop 함수는 문자에서 여러 다양한 특성을 쿼리할 수 있습니다. isstrprop는 string형 또는 문자형 벡터에 포함된 문자가 영문자, 영숫자 문자, 10진수 또는 16진수 숫자, 문장 부호 문자인지 여부를 확인할 수 있습니다.

문자열에서 문장 부호인 문자를 확인합니다. isstrpropstr의 문자 수와 동일한 길이의 논리형 벡터를 반환합니다.

str = "A horse! A horse! My kingdom for a horse!"
str = 
"A horse! A horse! My kingdom for a horse!"
isstrprop(str,"punct")
ans = 1x41 logical array

   0   0   0   0   0   0   0   1   0   0   0   0   0   0   0   0   1   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   1

문자형 벡터 chr에서 영문자인 문자를 확인합니다.

isstrprop(chr,"alpha")
ans = 1x30 logical array

   1   1   1   1   0   1   1   1   1   1   0   1   1   1   0   1   1   1   1   1   0   1   1   1   1   1   0   1   1   1

참고 항목

| | | | | | | | | |

관련 항목