空の 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 = 0×0 empty char array
関数 strings を使用して空の string の配列を作成します。配列の各要素は、文字が 1 つも含まれない string です。
str2 = strings(1,3)
str2 = 1×3 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 = 0×3 empty string array
関数 isempty を使用して str をテストします。
isempty(str)
ans = logical
1
string 配列に空の string があるかどうかをテストします。== 演算子は、string 配列と同じサイズの logical 配列を返します。
str = ["Mercury","","Apollo"]
str = 1×3 string
"Mercury" "" "Apollo"
str == ''ans = 1×3 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 = 1×3 string
"" "Gemini" <missing>
ismissing(str)
ans = 1×3 logical array
0 0 1
str を欠損 string と比較します。欠損 string を別の欠損 string と比較する場合でも、比較は常に 0 (false) です。
str == string(missing)
ans = 1×3 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