【发布时间】:2014-03-01 14:28:48
【问题描述】:
所以我仍然对基本 java 的工作原理感到不安,这是我编写的一个方法,但不完全理解它是如何工作的,有人愿意解释吗?
它应该取一个 s in 的值并以相反的顺序返回它。
编辑:主要是 for 循环让我感到困惑。
假设我输入“12345”,我希望我的输出为“54321”
Public string reverse(String s){
String r = "";
for(int i=0; i<s.length(); i++){
r = s.charAt(i) + r;
}
return r;
}
【问题讨论】:
-
哪一部分不清楚?
-
每次执行
r = s.charAt(i) + r;时都会在内存中创建一个新字符串,旧字符串会被垃圾回收。实在是太低效了。 -
抱歉应该在问题中指定,我不清楚 for 循环。
-
如果您在纸上跟踪执行情况,您可以轻松了解正在发生的事情。在循环中,您首先创建 1,然后附加 21 等...
-
Mainly the for loop is what is confusing me这对我们没有帮助,因为除了创建临时变量并返回它,循环只剩下一部分了。您是否尝试过在纸上迭代此代码?只需拿起笔,写下哪行代码会处理变量。