我尝试了以下步骤。但我不知道接下来应该怎么做。只能使用s.equals(""),s.charAt(0),s.substring(1)
。其他方式是不允许的。
public string remove1 (char c, string s){
string to_ret = "";
while(true){
if (s.equals("")) return to_ret;
char c2 = s.charAt(0);
if (c2 = c) return to_ret+s.substring(1)
to_ret = to _ret;
s = s.substring(1);
}
remove("e","hello")
接下来我该怎么办?
答案 0 :(得分:1)
如果我理解你的问题,你可以这样做:
s = s.replace('a', 'b');
答案 1 :(得分:1)
public String remove(char a, char b, String s) {
String retString = "";
for (int i = 0; i < s.length(); i++) {
char stringChar = s.charAt(i);
if (stringChar == a) {
retString = retString + b;
} else {
retString = retString + stringChar;
}
}
return retString;
}
答案 2 :(得分:1)
让我向您介绍一个递归:
public String replace(char a, char b, String s) {
if (s.equals("") return "";
char ch = s.charAt(i);
if (stringChar == a) {
return b+ replace(a,b,s.substring(1))
} else {
return ch+ replace(a,b,s.substring(1))
}
}
答案 3 :(得分:0)
这是一个家庭作业问题吗?
public String remove1 (char c,char b, String s){
String to_ret = "";
int len = s.length();
for(int i =0 ; i< len ; i++){
if (s.equals("")) return to_ret;
char c2 = s.charAt(i);
if (c2 == c)
to_ret = to_ret + b;
else
to_ret = to_ret + c2;
}
return to_ret;
}
答案 4 :(得分:0)
似乎有人试图用Java教你函数式编程原理。我会质疑语言的选择。即使这样,您也应该考虑递归以获得解决方案。将String作为字符列表。