【发布时间】:2021-08-02 10:25:57
【问题描述】:
如果字符串中的所有字符都不同,我希望我的代码返回 true,但即使某些字符相同,它也会返回 true。例如,在字符串输入中,字符“r”重复了 3 次,并且方法仍然返回true。我做错了什么? 我的代码:
public static void main(String[]args)
{
System.out.println(code("qrrrtyuioplkjhgfdsazxcvbnm")); }
public static boolean code(String input)
{
for (int i = 0; i < 27; i++)
{
char temp=input.charAt(i);
char x =input.charAt(i+1);
if(temp!=x)
{
return true;
}
}
return false;
}
【问题讨论】:
-
提示:一旦发现 any 对不同的字符,您的代码就会返回 true。 (请注意,您也永远不会比较不相邻的字符 - 考虑一下“aba”会发生什么。)
-
是的,它仍然会返回 true 。我不确定如何检查所有字符是否不同。
-
应该中止迭代的检查是当你发现两个相同的字符时,你的逻辑就被颠倒了。你可以做一个双循环并将每个字符 i 与每个其他字符 j 进行比较。或者您可以对字符串进行排序,现在比较相邻的字母是正确的。或者你可以将字符串的内容填充到一个集合中,如果结果集合的大小与字符串相同,则字母是唯一的......
-
“我不确定如何检查所有字符是否不同。” - 你会如何“手动”完成?
-
是的,我已经制作了一个流程图,我知道我必须对这段代码进行简单的更改,但只是没有想到
标签: java