Main Content

空の 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 を使用します。== 演算子は使用しないでください。

参考

| | | | | | | | | | | | | | | | | |

関連するトピック