gpt4 book ai didi

java - 当条件为 true 时,整数变量不会更新

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

public class test
{
static Scanner store = new Scanner(System.in);
public static void main(String[] args)
{
String str1 = args[0];
String str2 = args[1];

System.out.printf("%nThere are %d dissimilar characters in the two strings.%n", CountNotSim(str1, str2));
}
public static int CountNotSim(String str1, String str2)
{
String s1 = str1.toLowerCase();
String s2 = str2.toLowerCase();
char[] a1 = new char[s1.length()];
char[] a2 = new char[s2.length()];

for (int g = 0; g < s1.length(); g++)
a1[g] = s1.charAt(g);
for (int h = 0; h < s2.length(); h++)
a2[h] = s2.charAt(h);

int check = 0, stored;
char[] array = new char[26];
int ctr = s1.length() + s2.length();

for (int i = 0; i < a1.length; i++)
{
check = 0;
stored = 0;
for (int j = 0; j < a2.length; j++)
{
if (a1[i] == a2[j])
{
check++;
for (int k = 0; k < 26; k++)
{
if (array[k] == ' ')
if (stored == 0)
array[k] = a1[i];
if (a1[i] == array[k])
{
stored = 1;
break;
}
}
System.out.print(stored + "/ ");
}
}
if (check > 0)
{
if (stored == 0)
ctr -= (check + 1);
else if (stored == 1)
ctr--;
}
System.out.print(ctr + " "); //checker
}
System.out.println();

return ctr;
}
}

程序检查从命令行输入的两个字符串中是否有不同的字母。每当有匹配时,变量“stored”就应该更改为 1,以避免对变量“ctr”进行额外扣除。然而,由于某种原因,不仅“stored”的值不会改变,数组“array”也不会在匹配时更新其元素。我不知道如何修复它——看起来没有任何问题。

最佳答案

你写的是:

char[] array = new char[26];
...
for (int k = 0; k < 26; k++)
{
if (array[k] == ' ') {
...

但是您只需设置数组的长度而不是其内容。

作为 char 数组,它填充默认的 char 值,该值不是字符空间 而是值 0 (不是字符 0,而是数值 0)

因此 array[k] == ' ' 永远不会成立。

尝试一下:

for (int k = 0; k < 26; k++)
{
if (array[k] == 0) {
...

关于java - 当条件为 true 时,整数变量不会更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59318885/

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