空の string と欠損値のテスト
string 配列には、空の string と欠損値の両方を含めることができます。空の string は文字を 1 つも含まず、間に何もない二重引用符のペア (""
) として表示されます。特定の string が空の string かどうかは、==
演算子を使用して判別できます。空の string は、他のすべての string の部分文字列です。したがって、contains
のような関数では、他の string 内にある空の string が常に見つかります。string 配列には、欠損値も含めることができます。string 配列内の欠損値は <missing>
と表示されます。string 配列内で欠損値を検索するには、==
演算子の代わりに関数 ismissing
を使用します。
空の string のテスト
string 配列に空の string があるかどうかをテストするには、==
演算子を使用します。
間に何もない二重引用符 (""
) を使用して空の string を作成できます。str
のサイズが 0 行 0 列ではなく 1 行 1 列であることに注意してください。ただし、str
には文字が 1 つも含まれません。
str = ""
str = ""
一重引用符を使用して空の文字ベクトルを作成します。chr
のサイズが 0 行 0 列であることに注意してください。文字配列 chr
は、実際に空の配列であり、単なる文字を 1 つも含まない配列ではありません。
chr = ''
chr = 0x0 empty char array
関数 strings
を使用して空の string の配列を作成します。配列の各要素は、文字が 1 つも含まれない string です。
str2 = strings(1,3)
str2 = 1x3 string
"" "" ""
str
が空の string かどうかをテストするには、空の string と比較します。
if (str == "") disp 'str has zero characters' end
str has zero characters
空の string のテストには、関数 isempty
を使用しないでください。文字を 1 つも含まない string であっても、サイズは 1 行 1 列です。ただし、string 配列にサイズがゼロの次元が少なくとも 1 つは含まれているかどうかをテストするには、関数 isempty
を使用できます。
関数 strings
を使用して空の string 配列を作成します。空の配列では、少なくとも 1 つの次元のサイズがゼロでなければなりません。
str = strings(0,3)
str = 0x3 empty string array
関数 isempty
を使用して str
をテストします。
isempty(str)
ans = logical
1
string 配列に空の string があるかどうかをテストします。==
演算子は、string 配列と同じサイズの logical 配列を返します。
str = ["Mercury","","Apollo"]
str = 1x3 string
"Mercury" "" "Apollo"
str == ''
ans = 1x3 logical array
0 1 0
他の string 内にある空の string の検索
string には常に、空の string が部分文字列として含まれています。実際には、空の string は常にすべての string の先頭と末尾の両方にあります。また、空の string は常に string の中の連続する 2 文字の間にもあります。
string を作成します。次に、空の string が含まれているかどうかをテストします。
str = "Hello, world"; TF = contains(str,"")
TF = logical
1
str
が空の string で始まるかどうかをテストします。
TF = startsWith(str,"")
TF = logical
1
str
内の文字数をカウントします。次に、str
内の空の string の数をカウントします。関数 count
は、str
の先頭と末尾、およびすべての文字と文字の間にある空の string をカウントします。したがって、N
個の文字を含む str
には、N+1
個の空の string も含まれています。
str
str = "Hello, world"
strlength(str)
ans = 12
count(str,"")
ans = 13
部分文字列を空の string に置き換えます。空の string を指定して replace
を呼び出すと、部分文字列が削除され、文字を 1 つも含まない string に置き換えられます。
replace(str,"world","")
ans = "Hello, "
関数 insertAfter
を使用して、空の string の後に部分文字列を挿入します。各文字間に空の string があるため、insertAfter
は、すべての文字と文字の間に部分文字列を挿入します。
insertAfter(str,"","-")
ans = "-H-e-l-l-o-,- -w-o-r-l-d-"
一般的に、部分文字列を置換、消去、抽出または挿入する string の関数では、変更対象の部分文字列の先頭と末尾に空の string を指定できます。その場合、これらの関数は文字列の先頭と末尾、および文字と文字の間に対して機能します。
欠損値のテスト
string 配列に欠損値があるかどうかをテストするには、関数 ismissing
を使用します。欠損 string は、数値配列の NaN
と等価の string です。string 配列のどこに欠損値があるかを示します。欠損 string は <missing>
として表示されます。
欠損 string を作成するには、関数 string
を使用して欠損値を変換します。
str = string(missing)
str = <missing>
空の string と欠損 string の両方を含む string 配列を作成できます。どの要素が欠損値を含む string であるかを判別するには、関数 ismissing
を使用します。空の string は欠損 string ではないことに注意してください。
str(1) = ""; str(2) = "Gemini"; str(3) = string(missing)
str = 1x3 string
"" "Gemini" <missing>
ismissing(str)
ans = 1x3 logical array
0 0 1
str
を欠損 string と比較します。欠損 string を別の欠損 string と比較する場合でも、比較は常に 0
(false
) です。
str == string(missing)
ans = 1x3 logical array
0 0 0
欠損 string を検索するには、関数 ismissing
を使用します。==
演算子は使用しないでください。
参考
string
| strings
| strlength
| ismissing
| contains
| startsWith
| endsWith
| erase
| extractBetween
| extractBefore
| extractAfter
| insertAfter
| insertBefore
| replace
| replaceBetween
| eraseBetween
| eq
| all
| any