Java中的字符串索引超出范围错误(字符串索引超出范围异常)

时间:2017-05-04 21:29:20

标签: java recursion

每个人所以我正在编写一个代码,应该使用“aabbcc”并输出“abc”,以便使用递归删除重复的字符。希望你能帮助我。

@interface Controller ()

@end

@implementation Controller  

- (void)viewDidLoad
{
   [super viewDidLoad];
}

@end

当我运行我的代码时,我得到了这个错误:

@synchronized

3 个答案:

答案 0 :(得分:0)

也许使用拆分?这更容易使用。

答案 1 :(得分:0)

这是一个有效的解决方案。你很亲密!

如果只有一个字符,你想继续回复这个词(否则你会得到一个超出范围的例外)。

如果彼此相邻的字符相同,则返回一个只保留最右边字符的新单词(跳过副本)。

public static String getReverser(String word) {
    System.out.println(word);
    if (word.length() == 1) {
        return word;
    }
    if (word.charAt(0) == word.charAt(1)) {
        return getReverser(word.substring(1));
    } else {
        return word.substring(0, 1) + getReverser(word.substring(1));
    }
}

输出:

Enter a String: 
aabbccccaa
aabbccccaa
abbccccaa
bbccccaa
bccccaa
ccccaa
cccaa
ccaa
caa
aa
a
abca

答案 2 :(得分:0)

public static void main(String[] args) {

    Scanner sc = new Scanner(System.in);
    System.out.println("Enter a String");

    StringBuilder builder = new StringBuilder();

    char[] charArray = sc.nextLine().toCharArray();
    for(char chr : charArray){
        if(builder.indexOf(String.valueOf(chr))==-1){
            builder.append(chr);
        }
    }

    System.out.println(builder);
}