程序返回一个获得两个字符串交换字符的字符串;即 字符串S1 = “交流励磁发电机” 字符串s2 = “HFDB” 的结果为 “ABCDEFGH”(两个字符串总是具有相同的长度;字符串索引超出范围使用强制方法的例外
好,我proceded以这种方式:
public class Eserc2 {
public static String ricorsiveString(String s1, String s2) {
if(s1.length() == 0 && s2.length() == 0) {
return "";
} else {
char c = s1.charAt(0);
char b = s2.charAt(s2.length()-1);
String s = String.valueOf(c) ;
String t = String.valueOf(b) ;
String tot = s+t ;
return tot + ricorsiveString(s1.substring(1),s2.substring(s2.length()));
}
}
public static void main(String[] args) {
String a = "aceg";
String b = "bdfh";
ricorsiveString(a,b);
}
}
的问题是,当我编译的电脑发现了异常:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.charAt(String.java:658)
at eserc2.Eserc2.ricorsiveString(Eserc2.java:20)
at eserc2.Eserc2.ricorsiveString(Eserc2.java:26)
at eserc2.Eserc2.main(Eserc2.java:34)
你可以帮我吗???
20和26行在哪里? – assylias 2013-02-22 18:02:39
当你*运行*不编译。仅供将来参考 – 75inchpianist 2013-02-22 18:02:49