public static void main(String[] args) {
String str = "XXYZZA";
char[] a = str.toCharArray();
int count=0;
for (int i = 0; i < a.length; i++)
{
if (a[i] == a[i++])
{
count++;
}
else
System.out.println(a[i++]);
}
}
“else”部分中的打印语句没有被执行。 所需的输出应该是
Y
A
最佳答案
好的,首先也是最重要的是,请正确缩进,这对理解代码有很大帮助。
其次,由于两个原因,if (a[i] == a[i++])
不是正确的方法
- 您的 for 循环将开始跳过 i 值,因为您使用的是一元运算符,它将直接作用于操作数。
- ArrayIndexOutOfBounds:一旦您的 i 达到其最大值
a.length - 1
,您的测试条件i++
将尝试访问位于indexa.length
,正如您可能已经猜到的那样,它不存在。
您需要的是某种排序算法,而无需实际保存排序序列。
关于Java程序打印字符串中的第一个非重复字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50809676/