gpt4 book ai didi

java - 为什么我的程序一直在寻找输入?

转载 作者:行者123 更新时间:2023-12-01 10:56:48 25 4
gpt4 key购买 nike

此代码是用 Java 编写的。它允许我很好地输入第一个输入,但在输入第二个输入后,它会继续寻找更多字符串,我的其余代码都不会跟随。理想情况下,代码会发现两个字符串是否是字谜词,但由于这个烦人的问题,我无法测试它。

import java.util.*;
public class Anagram
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
System.out.println("Please enter a word");
String first = scan.nextLine();
System.out.println("Please enter a second word");
String second = scan.next();
first = first.toLowerCase();
second = second.toLowerCase();
int lengthF = first.length();
int lengthS = first.length();
int x = 0;
int y = 0;
int placeF=0;
int placeS=0;
char g = 97;
int count =0;
if(lengthF != lengthS)
{
System.out.println("The words are not anagrams");
x=1;
}
while(x == y||g<123)
{
x=0;
y=0;
for(int i = 0;i<lengthF;i++)
{
if(first.charAt(i)==g)
{
x++;
}
}
for(int i = 0;i<lengthS;i++)
{
if(second.charAt(i)==g)
{
y++;
}
}
count++;
g++;
}
if(count==23)
System.out.println("Anagram");
else
System.out.println("Not Anagram");
}
}

最佳答案

我在您的代码中发现了三个错误,如果您始终遵循以下编程的一般规则,您可以轻松地自己找到这些错误:

  1. 切勿模糊地使用数字。以解释该值来自何处的方式编写它们:而不是:

char g=97;

...就这样吧:

char g='a';

同样的情况也适用于程序中的每个“特殊”数字:97、123 和 23(这样您就会发现23是错误的)。

  • 索引循环应始终为 for,并具有初始值、持续条件和增量操作。持续条件必须是索引间隔条件,加上由 AND 运算符组合的可选辅助条件。
  • 第三个错误......好吧,现在我想不出任何一般规则来避免它。这肯定是一个复制粘贴问题:变量lengthS初始化错误。

    此外,我建议您不要多次编写相同的算法:将其取出到单独的函数中并重用。因此,您可以使用循环来计算特定字符串中特定字符的出现次数。你可以这样定义它:

    private static int countOccurrencesOfChar(String s, char c) {...}

    关于java - 为什么我的程序一直在寻找输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33586506/

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