Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用递归在特定索引处反转字符串_Java_Recursion_Reverse - Fatal编程技术网

Java 使用递归在特定索引处反转字符串

Java 使用递归在特定索引处反转字符串,java,recursion,reverse,Java,Recursion,Reverse,我将如何使它在特定索引处反转字符串,例如,I=1处的再见将是ybdoog,I=2处的再见将是bdoog。该索引之前的任何内容都将在返回字符串中被忽略。在爪哇 public static String revStr(String s, int i) { if (s == null || s.length() <= 1) return s; else return revStr(s.substring(1), i)+ s.charAt(0); }

我将如何使它在特定索引处反转字符串,例如,I=1处的再见将是ybdoog,I=2处的再见将是bdoog。该索引之前的任何内容都将在返回字符串中被忽略。在爪哇

public static String revStr(String s, int i) {
    if (s == null || s.length() <= 1)
        return s;
    else
        return revStr(s.substring(1), i)+ s.charAt(0);
}
publicstaticstringrevstr(strings,inti){

if(s==null | | s.length()您需要返回
s.substring(i)
而不是
s
,因为您需要从
i
开始的反向子字符串。此外,对于这种情况,终止条件应该是
if(s==null | s.length())
例如,在i=1时再见将是ybdoog
-
e
去哪里了?它应该是revStr,而e去了,因为它应该反转从特定索引开始的字符串。在这种情况下,1在反转时跳过e。所谓跳过e,我的意思是从特定索引i开始反转。该方法以相反的顺序返回传入的字符串从指定的索引开始。i=0将返回正常反转的字符串。因此,结果需要有一个前缀,而不是反转的前缀。以及从索引开始的反转部分,如
revStr(“abcdefgh”,3)-->“abchgfed”?
这只适用于1,应该已经澄清它需要与任何i一起工作,而不仅仅是1或0,例如2=bdoog。@LethalLizard-纠正了问题。如果有任何进一步的疑问/问题,请随时发表评论。@ShashSinha-你是对的。感谢你指出它。我已经更新了答案。
public class Main {
    public static void main(String[] args) {
        // Test
        System.out.println(revStr("goodbye", 2));
        System.out.println(revStr("goodbye", 1));
        System.out.println(revStr("goodbye", 0));
    }

    public static String revStr(String s, int i) {
        if (s.length() <= i)
            return s.substring(i);
        else
            return revStr(s.substring(1), i) + s.charAt(0);
    }
}
bdoog
ybdoog
eybdoog