如何將我的調用更改爲函數collate,我希望它打印出collate(「hello」,「there」)是「htehlelroe」。從一個類中調用函數「整理」
public class Collate {
public static void main(String[] args) {
String a = new String("hello");
String b = new String("there");
}
public String collate(String a, String b) {
String collate = new String();
for (int i = 0; i < a.length(); i++) {
collate = collate + a.substring(i);
collate = collate + b.substring(i);
collate(a, b);
System.out.println(collate);
}
return collate;
}
}
你無限地調用collate,因爲你總是用相同的參數(a,b)在它內部調用它,而不是改變任何狀態。如果您執行它,程序將崩潰。另外,如果你想從main方法中調用collate,你必須聲明它是靜態的,或者實例化一個你可以調用collate的Collate對象。 (靜態方法不能調用非靜態方法) – 2014-09-20 00:46:04
也可以用'charAt(i)'替換'substring(i)'' – mariusm 2014-09-20 00:50:43
您不必要地創建遞歸(自己調用方法)。你的'collate(a,b)'應該放在'main'裏面,'collate()'方法本身應該是'static'。 – 2014-09-20 00:51:43