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