第二次测试中怎么样?
为什么英语中y不是元音?在瑞典语中我们有9个元音,y是其中之一。
英语中只有五个元音。这是“a, e, i, o, u '。
我不明白为什么下面的方法行不通:
表达='aeiouaeiou]';
[〜,nom暂停] = regexp(s1,表达式,'匹配','split');
[〜,c] =尺寸(Nomatch);
cell_s2 ='';
对于i = 1:c
cell_s2 = strcat(cell_s2,nomatch(i));
结尾
s2 = string(cell_s2);
不错的
#警告
字符数组和字符串不是相似的。
长度(abc)
%3.
长度(“abc”)
%1
所以'ABC'不等于“ABC”
使用"char"函数从字符串中获取字符数组
Char(“ABC”)
%'abc'
使用
if ~any(s1(i) == 'aeiouAEIOU')
这很简单
字母'w'和'y'实际上是元音。
(也许不在Cody中,也许甚至不是在美国英语中 - 我不确定 - 但对于某些人来说,他们是英文......)
功能S2 = REFCN(S1)
s2 = [];
s3 ='aaeeiioou';
L = strlength (s1);
l1 = strlength(s3);
国旗= 0;
j = 1;
i = 1: L
对于k = 1:l1
如果s1(i)== s3(k)
标志= 1;
继续;
结尾
结尾
如果标志== 0
S2(j)= s1(i);
j = j + 1;
结尾
国旗= 0;
结尾
结尾
为什么不接受
我不能在我的PC上工作(Matlab 2016不支持双引号和字符串数组)万博1manbetx
s1 = '我不想工作。我只想整天敲鼓。”
如何将这些字符串读取到S1,包括其他报价
包括lower()帮助我完成了大写I
“Y”被认为是辅音!
除了元音之外,第二个测试还会消除一个空间。虽然想要清理额外的空间是自然的,但空间是_not_元音。
测试套件的显示屏在“I”处显示第二个空间,但实际测试不会删除它。这非常令人困惑,但测试实际上适用于你的期望。只是显示的“正确”答案是 - 事实上 - 你注意到的情况下不正确。
我遇到了麻烦,因为我看到了你的答案,并在我的解决方案中纠正了他们的“错误”。但是他们的错误只是一个显示错误,而不是测试套件中的实际错误。哎!
有关解决方案的修复版本,请参见//www.tianjin-qmedu.com/matlabcentral/cody/problems/22-remove-万博 尤文图斯the-vowels/solutions/1218453。
当然,我刚刚注意到你的解决方案是五个月大的,所以你当然不在乎。这就是生活。
还应包括其他首都
有人知道为什么这行不通吗?对我来说很好。
考虑字母'y'。它可以是辅音或元音,取决于背景。更多:http://en.wikipedia.org/wiki/consonant#letters.
起初我尝试了两种方法,结果都是一样的。我的错误是忘记了大写元音。感谢您的回复。
很好的解决方案!
如果我们通过ASCII代表批准,任何人都可以说出有什么问题?
很好的例子!
一个“‘”可以在“regexp”和“regexpi”之间造成非常不同的情况。
对于第二个测试用例,有些东西是错误的。
*如果使用MATLAB中的S1中给出的字符串,则不会得到列出的输出。
*但是,要获取列为正确的输出,您不能具有给出的输入。
Regexp显然无法在“日”结束时检测'Y'。这不会发生在我自己的计算机上。确实很奇怪。
比'Ignorecase'更小但不太明确。无论如何,良好的解决方案。
在我的电脑上它可以工作。为什么不呢?
等待......这是怎么回事:
s2 = regexprep(s1,'[aeiouaeiou],'');
s2 = s1(正则表达式(s1,'[^ aeiou]')));
@tom.
我相信它是因为regexpi与regexprep命令的'ingorecase'选项相同(包括使得大小15)。