【发布时间】:2012-08-29 00:26:59
【问题描述】:
我试图了解下面的代码是否为像“stephan”这样的字符串创建了 12 个对象
public String reverse(String str) {
if ((null == str) || (str.length() <= 1)) {
return str;
}
return reverse(str.substring(1)) + str.charAt(0);
}
这递归地反转一个字符串。我明白它是如何工作的。但我在想,在这种情况下,字符串的长度和通过连接创建的字符串对象的数量之间是否存在关系?
【问题讨论】:
-
substring() 将创建一个字符串对象。 + 将创建另一个。不过,我不知道您所说的与字符串长度的关系是什么意思。
-
我们只说“按字母数的顺序”。
-
@Marvo - 他的函数是递归的。因此,每次递归调用中每个字符都会发生一次计数
-
substring 不会创建字符串,它会返回原始字符串的视图 - 但是 + 会。
-
我意识到它是递归的。我指出在代码中创建字符串的位置。输入将确定最终计数。
标签: java