gpt4 book ai didi

java - 为什么我的 for 循环不会读取字符串的最后一个字符?

转载 作者:行者123 更新时间:2023-12-01 14:04:34 25 4
gpt4 key购买 nike

我正在尝试编写一个基本的java程序来压缩输入中的java字符串;例如将aabbccdddd转换为a2b2c2d4。该程序按照我的要求执行,只是它不处理最后一个字符,我得到的输出是 a2b2c2 而不是 a2b2c2d4。我做错了什么?

for(x = 0, y = 1; x<input.length()-1; x++)
{
if (input.charAt(x) != input.charAt(x+1) && count == 1)
{
System.out.print(input.charAt(x));
System.out.print(count);
}

else if (input.charAt(x) == input.charAt(x+y))
{
count++;
}

else if (input.charAt(x) != input.charAt(x+1) && count >= 2)
{
System.out.print(input.charAt(x));
System.out.print(count);
count = 1;

}
else
{
System.out.println("fail");
}
}

最佳答案

当下一个字符与当前字符不同时,打印计数。最后一个字符没有下一个字符。这就是它不显示在输出中的原因。

方法 1

您应该在循环后添加以下两行:

System.out.print(input.charAt(input.length()-1));
System.out.println(count);

方法2

如果您修改原始输入没有问题。您可以在输入的末尾添加额外的字符。该附加字符必须是永远不会出现在原始字符串中的字符。说它是#

在循环开始之前执行此操作:

input += "#"; 
for(...)

关于java - 为什么我的 for 循环不会读取字符串的最后一个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19019230/

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