gpt4 book ai didi

java - 删除字符串中的重复项并创建新字符串

转载 作者:行者123 更新时间:2023-12-02 11:38:08 27 4
gpt4 key购买 nike

我是 Java 新手,正在尝试创建一种方法,该方法允许我删除字符串中的重复字符并创建一个新字符串,并将所有连续出现的相同字符转换为单个字符。例如,字符串 fffggghhh 将返回为 fgh。我在下面提供了我的代码,但我收到一个索引超出范围错误,其中包含我输入的字符串的长度。例如,当测试此方法并输入 AA 作为我的字符串时,我收到索引超出范围 2 错误。

public String DuplicatesTEST(String s) {
StringBuilder result = new StringBuilder();
for (int i = 1; i <= s.length(); i++) {
char curr = s.charAt(i);
char prev = s.charAt(0);
if (curr != prev) {
result.append(prev);
} else if (curr == prev)
prev = curr;
}
return result.toString();
}

最佳答案

数据结构Set的行为不包含重复项,因此使用Set来删除重复项。
尝试这样的事情:

public String DuplicatesTEST(String s) {
Set<Character> set = new HashSet<>();
StringBuilder result = new StringBuilder();
for (int i = 0; i < s.length(); i++) {
set.add(s.charAt(i));
}
set.forEach(result::append);
return result.toString();
}

对于fffggghhhff输入此返回fgh

如果您想使用上面的解决方案 block 删除重复项没有帮助,那么我对您的实现做了一些小更改:

public String DuplicatesTEST(String s) {
StringBuilder result = new StringBuilder();
if (s != null && !s.isEmpty()) {
char first = s.charAt(0);
for (int i = 1; i < s.length(); i++) {
if (first != s.charAt(i)) {
result.append(first);
first = s.charAt(i);
}
}
result.append(first);
}
return result.toString();
}

对于fffggghhhff输入此返回fghf

关于java - 删除字符串中的重复项并创建新字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48779283/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com