字符串的连接和拆分涉及到四个函数:strjoin和join、strsplit和split,用法的区别在下面程序示例中说明,字符串拆分时,若不指定分隔符,默认在空白字符处拆分,空白字符等效于集合 {' ','\f','\n','\r','\t','\v'} 中的任何转义字符,程序示例:
clear,clc
names = ["Steve Jobs"
"Albert Einstein"
"艾萨克 es牛顿"]
%连接、拆分
names1 = split(names) %在空白字符处拆分字符串
join(names1) %添加空格按行连接
names2 = split(names,'s') %指定分隔符,所有元素都必须包含相同数目的 分隔符
join(names2,'+')
%names2 = split(names,{' ','s'}) %给定两个分隔符,用元胞数组表达,所有元素都必须包含相同数目的 分隔符
%join(names2,{'+','-'})
join(names) %若是输入是向量,默认添加空格连接成一个文本块
strjoin(names) %默认添加空格连接文本成一个文本块,输入可以是字符向量元胞数组或字符串数组
strjoin(names,',')
%strjoin(names,{' 不是 ',' 和 '})
在处理向量时,合并结果相同,处理数组时,strjoin仍然返回单个字符串,join返回相应的数组结果,程序示例如下:
strjoin(names1)
join(names1)
strsplit和split区别是,strsplit仅用于字符向量或字符串标量,split还可用于字符串数组或元胞数组,程序示例如下:
strsplit("Steve Jobs") %在空白字符处拆分,空白字符等效于集合 {' ','\f','\n','\r','\t','\v'} 中的任何转义序列
strsplit("Steve Jobs","o") %在指定字符处拆分
strsplit("E:\matlab\work",'\') %在路径字符串中的应用
strsplit(names)
这里所讲的换行符是指回车,按照换行符拆分使用函数splitlines,一般的,换行符的转义字符输入是\n,但有时作为字符输入后,并不进行转义识别,这就用到了格式化函数compose,另外,换行符还可以使用函数newlines定义,直接看程序示例和注释:
temp="aaa
bbb" %字符串输入时无法直接添加换行符(回车)
temp="aaa\nbbb" %换行符用转义字符\n输入,但不会转转义,字符串会原样输出
splitlines(temp) %在换行符处拆分字符串,不成功,没有换行符
temp1=compose(temp) %compose:将数据转换为格式化的字符串数组
splitlines(temp1) %在换行符处拆分字符串
newline %换行符
temp2=["aaa" newline "bbbb"]
splitlines(temp2)
temp2=['aaa' newline 'bbbb'] %仅适用于字符向量,在换行符处拆分成元胞数组
splitlines(temp2)
36.0 Matlab GUI九个经典案例详解和演示
1.31/Matlab缺失字符串的创建 转换 剔除 应用
1.30/Matlab字符串型创建/比较/索引/运算/这是一个神奇的数据类型,不信你学学看
47.1 Matlab遗传算法概念、流程和编程案例
End