public String replaceVowels(String s){
String replacement = "";
for(int i = 0; i <s.length(); i++){
if(s.charAt(i)=='a' || s.charAt(i)=='A' ||
s.charAt(i)=='e' || s.charAt(i)=='E'||
s.charAt(i)=='i' || s.charAt(i)=='I'||
s.charAt(i)=='o' || s.charAt(i)=='O'||
s.charAt(i)=='u' || s.charAt(i)=='U'){
replacement = replacement + '*';
}else{
replacement = replacement + s.charAt(i);
}
}
return replacement;
我想*在字符串中替换元音和这里的代码是我的测试代码
@Test public void tests8(){
code.Solution s = new code.Solution();
String input = "book ";
String expected = "b**k";
String actual = s.replaceVowels(input);
assertTrue("Expected was" +expected+"but the actual was" +actual , expected == actual);
}
的错误是太奇怪了,当我运行JUnit它说
预计是b * * k但实际是b * * k
我的代码有什么问题?
你必须要在后面加上一个空格。所以replaceVowels返回''b ** k“'但你期望''b ** k”'。 – immibis 2015-02-10 22:38:03
投票结束这是一个简单的印刷错误。 – immibis 2015-02-10 22:38:52
即使空间被删除,你将需要使用['expected.equals(实际)'](http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) (或者使用'assertEquals'来代替)。 – rgettman 2015-02-10 22:40:58