Тест на пустые строки и отсутствующие значения

Массивы строк могут содержать и пустые строки и отсутствующие значения. Пустые строки содержат нулевые символы и отображение как двойные кавычки ни с чем между ними (""). Можно определить, является ли строка пустой строкой с помощью оператора ==. Пустая строка является подстрокой любой строки. Поэтому функционирует, такие как contains, всегда находят пустую строку в других строках. Массивы строк также могут содержать отсутствующие значения. Отсутствующие значения в массивах строк отображаются как <missing>. Чтобы найти отсутствующие значения в массиве строк, используйте функцию ismissing вместо оператора ==.

Тестирование на пустые строки

Можно протестировать массив строк на пустые строки с помощью оператора ==.

Начиная в R2017a, можно создать пустую строку с помощью двойных кавычек ни с чем между ними (""). Обратите внимание на то, что размер str 1 на 1, не 0 на 0. Однако str содержит нулевые символы.

str = ""
str = 
""

Создайте пустой символьный вектор с помощью одинарных кавычек. Обратите внимание на то, что размер chr 0 на 0. Символьный массив chr на самом деле является пустым массивом, и не только массивом с нулевыми символами.

chr = ''
chr =

  0x0 empty char array

Создайте массив пустых строк с помощью функции strings. Каждый элемент массива является строкой без символов.

str2 = strings(1,3)
str2 = 1x3 string array
    ""    ""    ""

Протестируйте, если str является пустой строкой путем сравнения его с пустой строкой.

if (str == "")
    disp 'str has zero characters'
end
str has zero characters

Не используйте функцию isempty, чтобы протестировать на пустые строки. Строка с нулевыми символами все еще имеет размер 1 на 1. Однако можно протестировать, если массив строк имеет по крайней мере одну размерность с размером нуля с помощью функции isempty.

Создайте массив пустой строки с помощью функции strings. Чтобы быть пустым массивом, по крайней мере одна размерность должна иметь размер нуля.

str = strings(0,3)
str = 

  0x3 empty string array

Протестируйте str с помощью функции isempty.

isempty(str)
ans = logical
   1

Протестируйте массив строк на пустые строки. Оператор == возвращает логический массив, который одного размера как массив строк.

str = ["Mercury","","Apollo"]
str = 1x3 string array
    "Mercury"    ""    "Apollo"

str == ''
ans = 1x3 logical array

   0   1   0

Нахождение пустых строк в других строках

Строки всегда содержат пустую строку как подстроку. На самом деле пустая строка всегда и в запуске и в конце каждой строки. Кроме того, пустая строка всегда находится между любыми двумя последовательными символами в строке.

Создайте строку. Затем протестируйте, если это содержит пустую строку.

str = "Hello, world";
TF = contains(str,"")
TF = logical
   1

Протестируйте, если str запускается с пустой строки.

TF = startsWith(str,"")
TF = logical
   1

Считайте количество символов в str. Затем считайте количество пустых строк в str. Функция count считает пустые строки вначале и конец str, и между каждой парой символов. Поэтому, если str имеет символы N, он также имеет пустые строки N+1.

str
str = 
"Hello, world"
strlength(str)
ans = 12
count(str,"")
ans = 13

Замените подстроку на пустую строку. Когда вы вызываете replace с пустой строкой, он удаляет подстроку и заменяет его на строку, которая имеет нулевые символы.

replace(str,"world","")
ans = 
"Hello, "

Вставьте подстроку после пустых строк с помощью функции insertAfter. Поскольку существуют пустые строки между каждой парой символов, insertAfter вставляет подстроки между каждой парой.

insertAfter(str,"","-")
ans = 
"-H-e-l-l-o-,- -w-o-r-l-d-"

В целом строковые функции, которые заменяют, стирают, извлекают или вставляют подстроки, позволяют вам задавать пустые строки как запуски и концы подстрок, чтобы изменить. Когда вы делаете так, эти функции работают с запуском и концом строки, и между каждой парой символов.

Тестирование на отсутствующие значения

Можно протестировать массив строк на отсутствующие значения с помощью функции ismissing. Отсутствующая строка является строкой, эквивалентной NaN для числовых массивов. Это указывает, где массив строк имеет отсутствующие значения. Отсутствующая строка отображается как <missing>.

Чтобы создать отсутствующую строку, преобразуйте отсутствующее значение с помощью функции string.

str = string(missing)
str = 
<missing>

Можно создать массив строк и с пустыми и с отсутствующими строками. Используйте функцию ismissing, чтобы определить, какие элементы являются строками с отсутствующими значениями. Обратите внимание на то, что пустая строка не является отсутствующей строкой.

str(1) = "";
str(2) = "Gemini";
str(3) = string(missing)
str = 1x3 string array
    ""    "Gemini"    <missing>

ismissing(str)
ans = 1x3 logical array

   0   0   1

Сравните str с отсутствующей строкой. Сравнением всегда является 0 (false), даже когда вы сравниваете отсутствующую строку с другой отсутствующей строкой.

str == string(missing)
ans = 1x3 logical array

   0   0   0

Чтобы найти отсутствующие строки, используйте функцию ismissing. Не используйте оператор ==.

Смотрите также

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

Похожие темы

Была ли эта тема полезной?