输出累积每次迭代而不是重置[关闭]

Posted

技术标签:

【中文标题】输出累积每次迭代而不是重置[关闭]【英文标题】:Output accumulates each iteration instead of resetting [closed] 【发布时间】:2013-08-17 19:25:04 【问题描述】:

代码第一次正常运行,然后使用while循环再次运行,假设我第一次输入AA,它变成CC,然后它再次运行我再次输入AA,它会出现CCCC再做一次它来了与 CCCCCC 一起,我不希望我需要它在每次循环时不保留字符串中的数据。

import java.util.*;
public class SecretCypher 

    public static void main(String args[]) 

        Scanner kb = new Scanner(System.in);
        StringBuffer e = new StringBuffer();
        System.out.println("Welcome to Secret Cypher!");

            char loop = 'Y';
            while(loop == 'Y' || loop == 'y') 
                System.out.println("");
                System.out.println("Enter your cypher in upper case.");
                String s = kb.nextLine();


                char[] cs = s.toCharArray();
                for (int i = 0; i < cs.length; i++) 
                    e.append((char)('A' + (cs[i] - 'A' + 2) % 26));
                
                if(s == s.toLowerCase()) 
                    System.out.println("Remember to use upper case letters!");
                    System.exit(0);//Also I was bored of using break and this works any where in the code.
                
                System.out.println(e.toString());


                System.out.println("Do you want to enter another cypher? > ");
                String again = kb.nextLine();
                if(again.charAt(0) == 'N') 
                    System.out.println("Hope you come back again!");
                    break;
                
            
    

【问题讨论】:

请勿转发。编辑并请求重新打开它, 我知道,但这需要很多反对票,人们不会费心去看。 这并不意味着您可以改变规则并重新发布。如果有的话,您所做的就是鼓励系统对您的 IP 地址执行问题禁止。 Java - I need help removing the data from the string before 的可能副本。 不,我们正在根据投反对票的指导方针投反对票,“这个问题没有显示任何研究工作;它不清楚或没有用”。不幸的是,这符合要求,因为之前没有尝试修复它或使用调试器进行调试。 【参考方案1】:

您正在重用相同的字符串缓冲区。如果你一直把东西放入同一个缓冲区而不清除它,你显然会从以前的迭代中得到无关的东西。

只需在 while 循环中声明 StringBuffer,以便在每次迭代时创建它。

无论如何,你应该学会使用你的调试器,而不是在这里要求我们调试。如果有的话,使用调试器可以为您在这里遇到的问题提供非常有价值的洞察力。

【讨论】:

@JordanCoaten 是否与此有关?如果你能写得好并展示之前的研究,请继续提问。 是的,这就是我要做的,这就是问题所在 - 您需要创建一个程序来计算运输容器中还剩下多少可用空间(如果有的话)。例如,如果您告诉程序容器有 3 个 maxi 盒子、7 个 midi 盒子和 3 个 mini 盒子,它必须说 CAN'T SHIP YET – NOT HALF FULL YET。 @JordanCoaten 这是作业吗?确保显示您尝试过的内容、失败的原因以及是否进行了调试(我强烈建议您在询问之前使用调试器) 好的,我会看看这个,我不想要答案,因为我喜欢编程,我喜欢自己做,我想长大后成为一名程序员 哦,好吧,那是钱的所在。

以上是关于输出累积每次迭代而不是重置[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

根据条件重置的 7 天累积总和

如何在每次测试之前重置 Jest 模拟函数调用计数

如何让我的倒数计时器重置为每次视图加载时?

每次关闭时如何重置视图?

制作每日重置的 InfluxDB/Grafana 累积函数(锯齿图)

redshift 返回的结果集是不是支持重置迭代器?