MATLAB提供了许多字符串函数来创建,组合,解析,比较和操作字符串。
下表简要介绍了MATLAB中的字符串函数。
用于存储字符数组中的文本,组合字符数组等的函数 -
函数 | 描述 |
---|---|
blanks | 创建空白字符串 |
cellstr | 从字符数组创建字符串数组 |
char | 转换为字符数组(字符串) |
iscellstr | 确定输入是字符串的单元格数组 |
ischar | 确定项目是否是字符数组 |
sprintf | 将数据格式化为字符串 |
strcat | 水平连接字符串 |
strjoin | 将单元格中的字符串连接到单个字符串中 |
识别字符串部分,查找和替换子串的函数 -
函数 | 描述 |
---|---|
ischar | 确定项目是否是字符数组 |
isletter | 数组元素是否为字母 |
isspace | 数组元素是空格 |
isstrprop | 确定字符串是否是指定的类别 |
sscanf | 从字符串读取格式化数据 |
strfind | 在另一个字符串中查找一个字符串 |
strrep | 查找并替换子串 |
strsplit | 在指定的分隔符处拆分字符串 |
strtok | 字符串的选定部分 |
validatestring | 检查文本字符串的有效性 |
symvar | 确定表达式中的符号变量 |
regexp | 匹配正则表达式(区分大小写) |
regexpi | 匹配正则表达式(不区分大小写) |
regexprep | 用正则表达式替换字符串 |
regexptranslate | 用正则表达式替换字符串 |
字符串比较的函数 -
函数 | 描述 |
---|---|
strcmp | 比较字符串(区分大小写) |
strcmpi | 比较字符串(不区分大小写) |
strncmp | 比较字符串的前n 个字符(区分大小写) |
strncmpi | 比较字符串的前n 个字符(不区分大小写) |
将字符串更改为大写或小写,创建或删除空格的函数 -
函数 | 描述 |
---|---|
deblank | 从字符串末尾剥去尾随空格 |
strtrim | 从字符串中删除前导和尾随的空格 |
lower | 将字符串转换为小写 |
upper | 将字符串转换为大写字母 |
strjust | 对齐字符数组 |
例子
以下示例说明了一些上述字符串函数 -
格式化字符串
创建脚本文件并在其中键入以下代码 -
A = pi*1000*ones(1,5);
sprintf(' %f \n %.2f \n %+.2f \n %12.2f \n %012.2f \n', A)
执行上面示例代码,得到以下结果 -
ans = 3141.592654
3141.59
+3141.59
3141.59
000003141.59
字符串连接
创建脚本文件并在其中键入以下代码 -
%cell array of strings
str_array = {'red','blue','green', 'yellow', 'orange'};
% Join strings in cell array into single string
str1 = strjoin(str_array, "-")
str2 = strjoin(str_array, ",")
执行上面示例代码,得到以下结果 -
str1 = red-blue-green-yellow-orange
str2 = red,blue,green,yellow,orange
查找和替换字符串
创建脚本文件并在其中键入以下代码 -
students = {'Bara Ali', 'Neha Bhatnagar', ...
'Nonica Malik', 'Madhu Gautam', ...
'Nadhu Sharma', 'Bhawna Sharma',...
'Muha Ali', 'Reva Dutta', ...
'Tunaina Ali', 'Sofia Kabir'};
% The strrep function searches and replaces sub-string.
new_student = strrep(students(8), 'Reva', 'Poulomi')
% Display first names
first_names = strtok(students)
执行上面示例代码,得到以下结果 -
Trial>> students = {'Bara Ali', 'Neha Bhatnagar', ...
'Nonica Malik', 'Madhu Gautam', ...
'Nadhu Sharma', 'Bhawna Sharma',...
'Muha Ali', 'Reva Dutta', ...
'Tunaina Ali', 'Sofia Kabir'};
% The strrep function searches and replaces sub-string.
new_student = strrep(students(8), 'Reva', 'Poulomi')
% Display first names
first_names = strtok(students)
new_student =
1×1 cell 数组
{'Poulomi Dutta'}
first_names =
1×10 cell 数组
1 至 7 列
{'Bara'} {'Neha'} {'Nonica'} {'Madhu'} {'Nadhu'} {'Bhawna'} {'Muha'}
8 至 10 列
{'Reva'} {'Tunaina'} {'Sofia'}
比较字符串
创建脚本文件并在其中键入以下代码 -
str1 = 'This is test'
str2 = 'This is text'
if (strcmp(str1, str2))
sprintf('%s and %s are equal', str1, str2)
else
sprintf('%s and %s are not equal', str1, str2)
end
执行上面示例代码,得到以下结果 -
str1 = This is test
str2 = This is text
ans = This is test and This is text are not equal