gpt4 book ai didi

java - 字符串压缩到字符数组列表

转载 作者:行者123 更新时间:2023-11-30 01:45:15 24 4
gpt4 key购买 nike

我有一个字符串,我正在将其压缩为带有计数的字符数组。我没有得到字符串中最后的字符数。

public class StringComp {

public static void main(String[] args) {

String st = "aaabbccaaaaadddd";
ArrayList<Character> chars = new ArrayList<>();
int count = 1;
char ct;

for(int i = 0; i < st.length() - 1; i++) {
if(st.charAt(i) == st.charAt(i+1)) {
count++;
}else {
ct = Integer.toString(count).charAt(0);
chars.add(ct);
chars.add(st.charAt(i));
count = 1;
}
}
System.out.println(chars.toString());

}

}

我的输出:

[3, a, 2, b, 2, c, 5, a]

我的输出应该是:

[3, a, 2, b, 2, c, 5, a, 4, d]

我似乎无法在我的代码中找到错误。

最佳答案

您应该在循环后添加最终计数:

...
for(int i = 0; i < st.length() - 1; i++) {
if(st.charAt(i) == st.charAt(i+1)) {
count++;
}else {
ct = Integer.toString(count).charAt(0);
chars.add(ct);
chars.add(st.charAt(i));
count = 1;
}
}
ct = Integer.toString(count).charAt(0);
chars.add(ct);
chars.add(st.charAt(st.length()-1));

另请注意,将计数存储为单个字符并不是一个好主意。如果计数大于 9 怎么办?

关于java - 字符串压缩到字符数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58275207/

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