【发布时间】:2020-09-06 21:41:33
【问题描述】:
我有一个学校作业,我需要创建一个接收字符串和字母的函数。然后它复制字符串中的字母并返回它。例如,如果我这样调用函数
System.out.println(duplicate("hello world", "l"));,它应该输出你好世界。但是,当我进行此调用时,代码改为输出 hello wlorld。这是我的代码:
public static String duplicate(String s, String letter){
String rv = s;
for(int i=0; i<s.length(); i++){
String a = s.substring(i,i+1);
if (letter.compareTo(a) == 0){
rv = rv.substring(0, i) + a + rv.substring(i);
}
}
return rv;
}
【问题讨论】:
-
就个人而言,我会使用
StringBuilder之类的东西来创建新的String -
很好的建议@MadProgrammer,您可以在给定索引处的字符之后插入。
-
@MadProgrammer 不幸的是,我无法使用 stringbuilder 来完成这项任务。我只能使用 compareTo、子字符串、长度和 indexOf
-
为什么不比较
s.charAt(i) == letter而不是letter.compareTo(a) == 0,其中letter是 char 类型。在可以获得可用字符的地方使用 `s.substring(i, i + 1) 没有多大意义,除非您 需要 使用字符串。 -
@Jason assingment 规定我们必须使用字符串