1,
字符数组对应向量、字符串数组对应标量;
字符数组使用单引号,'Apple';字符串数组使用双引号,"Apple";
字符数组转化为字符串数组,string('Apple');
字符串数组转化为字符数组,char("Apple");
字符数组拼接 ['Apple','Orange'];
字符串数组拼接 "Apple"+"Orange";
字符数组访问其中一个元素,char_a(num),num代表元素索引;
字符串数组访问其中一个元素,string_a{1}(n),string_a{1}相当于把字符串数组string_a转化为字符数组;
isempty('')结果为false,'' 空字符没有元素;
isempty("")结果为true,""空字符串有元素;
2,
水平串联字符,使用strcat;可串联字符数组,也可串联字符串数组;对于字符数组,会删除尾随的空白字符;字符串数组尾随的空白字符在串联时不会删除;
sprintf,与fprintf的不同点,fprintf将字符串输出到窗口,sprintf将字符串输入到一个变量或作为函数的输入。
例如:name = input('输入你的名字','s');
fprintf(sprintf('%s,输入你的ID,#: ',name)); %sprintf可将上边输入的变量组合进字符串,给到fprintf。
deblank,删除字符数组或字符串数组尾随的空格,并且只能删除尾随的空格;
strtrim,删除字符数组或字符串数组前边和尾随的空格,不能删除中间的空格;
strip,删除字符数组或字符串数组中指定的前边和尾随字符,不能删除中间的指定字符;
erase 擦除字符串中指定的字符,如指定的字符不存在,则返回原字符串;
upper 将字母转化为大写字母;
lower 将字母转化为小写字母;
strcmp 字符串比较,返回逻辑值,标量或向量;与 == 判断的区别,若是char型字符串,对比的字符串长度应相同;
strcmp 字符串比较,对大小写不敏感;
strncmp 对字符串前n个字符进行比较;
strfind 查找指定字符在字符串中的位置;
strrep 替换字符串中指定的字符;
count 计算字符串中指定字符的个数;
strtok 根据指定的字符截取字符串,默认按空格截取,会忽略字符串的前导空格;
例如:获取当前日期,将日期分解为 年/月/日
可以使用strtok 或 strfind函数:
date_str = date; %获取系统时间
[today_str,reset] = strtok(date_str,'-'); %获取日的信息
reset = reset(2:end);
[month_str,reset] = strtok(reset,'-'); %获取月的信息
year_str = reset(2:end); %获取年的信息
strings 创建string类型空矩阵,例如:strigs(3,4)创建一个3行4列的空字符串矩阵;
字符串的运算,包括标量和向量,向量和向量之间;
字符串操作及判断:
strjoin 将字符串数组或字符向量元胞数组连接,默认中间加空格,也可以指定连接字符,可以指定多个连接字符,指定的连接字符必须比元胞数组中的字符少一个,对于字符串矩阵,按顺序组合所有字符串;
strjoin(["abc","def"]) 结果为"abc def",对于strjoin(['abc','def'])会报错;
strjoin({'one','two','three'}) 结果为 'one two three',对于strjoin({"one","two","three"})会报错;
strsplit 将字符串按指定的分隔符分割为若干个字符串
strsplit("a-b-c",'-'),结果为string类型字符串数组 "a" "b" "c",strsplit('a-b-c','-'),结果为元胞型char类型数组;
join
join(['abc','def']) 结果为'abcdef'
join(["abc","def"]) 结果为"abc def",中间增加空格;
join(["abc","def","ghj"],{'-','='}) 结果为"abc-def=ghj";
2016版本之后建议使用join;
isletter 判断是否为字母
isletter('abc1'),结果为向量,可同样用于string类型字符串;
isspace 判断是否为空格
isspace('abc '),结果为向量,可同样用于string类型字符串;
ischar判断是否为字符型
isstring 判断是否为字符串,isstring(['123',"234"])结果为逻辑真;
isStringScalar 判断是否为字符串标量,isStringScalar(['123',"234"])结果为逻辑假;
iscellstr 判断一个元胞数组中的元素是否都为char字符串类型;
contains 判断是否包含某个字符,空字符特殊,因为字符串的开头结尾及字符之间都有空字符;
startsWith 判断是否以某个字符开头,空字符特殊;
endsWith 判断是否以某个字符结尾,空字符特殊;
int2str 整数转化为字符串,如果是小数,按四舍五入处理为整数
int2str(2.6)结果为'3';int2str([1,2])结果为'1 2';
num2str 数字转化为字符,可以指定转化的格式
num2str(2.65643,'%06.2f') 结果为'002.66';num2str([1.2,3.4]) 结果为'1.2 3.4';num2str([1.2,3.4],'%3.2f') 结果为'1.203.40';
str2double 字符转化为数字
str2double(['123','123']) 结果为123123;str2double(['123.456','12.78']) 结果为NaN;
str2num 字符转化为数字;
cellstr 元胞数组转化为字符串
cellstr({'abc',"wer"}) 结果为{'abc'} {'wer'},对于cellstr({'1',1}),不支持;
char 转化为字符
char(38) 结果为'&';char([38,78]) 结果为'&N';char(38,78) 结果为列向量
'&'
'N'
string 转化为字符串
string([123,345]) 结果为"123" "345"
all 判断所有元素是否为真
all([1,1,2]) 结果为逻辑真;