我必须将字符串上的每个元音更改为大写或小写,具体取决于它已经是什么。所以“UPPERCASE lowercase”变成“uPPeRCaSe lOwErcAsE”
到目前为止,我用这种方法还没有成功
str= 'UPPERCASE lowercase';
vow = 'aeiou';
vowm = 'AEIOU';
for k = 1:5
if str(str == vow(k))
str(str == vow(k))= vowm(k);
else
if str(str == vowm(k))
str(str == vowm(k))= vow(k);
预期输出:“upPeRCaSe lOwErcAsE”
实际输出:“uPPERCASE lOwErCAsE”
我是 matlab 的新手,有点迷路了。 我感谢你的帮助
最佳答案
使用ismember
查找每种元音(大写或小写)的所有出现,然后是 upper
和 lower
转换它们:
str = 'UPPERCASE lowercase'; %// original string
indl = ismember(str, 'aeiou'); %// locations of lowercase vowels
indu = ismember(str, 'AEIOU'); %// locations of uppercase vowels
str(indl) = upper(str(indl)); %// convert from lower to upper
str(indu) = lower(str(indu)); %// convert from upper to lower
关于string - 如何仅将元音从大写更改为小写,反之亦然 (MATLAB),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28674751/