我试图在我的单词之间产生空格,例如" x xx xxx"但相反,我得到" xxxxxx"每当我输入类似" 1 12 123"在互动中。谁有人能告诉我我失踪了什么?
public class Censor{
public String block(String s, char c){
if (s.length() == 0) {
return "";
}
else {
return c + block(s.substring(1), c);
}
}
}
答案 0 :(得分:1)
您只有一个替换规则:将第一个字符替换为c
。如果您希望将空格保留为空格,则您需要另一个替换规则,如下所示:
public String block(String s, char c){
if (s.length() == 0)
return "";
if (s.charAt(0) == ' ')
return " " + block(s.substring(1), c);
return c + block(s.substring(1), c);
}
顺便说一下,扫描整个字符串的递归可能不是最好的方法(除非你的议程不同于眼睛)。我建议使用正则表达式,例如:
s.replaceAll("[^\\s]", "x")
会用x
替换所有非空格字符。