上面的问题可能看上去很模糊,但实际上这是一个非常简单的想法,我似乎无法理解。
它基本上是一个包含从A到F的字母的4位字母代码,例如:ABDF、BAAF、DBAF等。
现在,我试图做一些帖子输入处理,在那里,它必须是不可能输入一个字母,已经在代码中,因为它必须是一个独特的4位代码,没有重复的字母。我一直在努力让它起作用,但我的代码似乎都不起作用,所以我重新开始向你们寻求帮助:)
我希望这件事有点清楚,否则我会很乐意澄清的。提前谢谢。
发布于 2015-01-16 14:04:44
public static boolean hasDuplicateChars(String string) {
Set<Character> chars = new HashSet<Character>();
for (char c : string.toCharArray()) {
if (!chars.add(c)) return false;
}
return true;
}设置是一个不包含重复元素的集合。我们将使用添加方法,如果此集合尚未包含指定的元素,则返回true。
hasDuplicateChars函数使用toCharArray函数和for循环迭代输入字符串中的字符;每个字符被添加到最初为空的chars集合中。如果add方法返回false,则意味着我们以前已经遇到过相同的字符。所以我们从函数中返回false。
否则,输入是有效的,方法返回true。
发布于 2015-01-16 14:05:06
一种伪码,但会有用的。
String uniquePass="";
while(uniquePass.length<4){
String userInput=getUserInputChar()
if(uniquePass.contains(userInput))
rejectInputAndNotifyUser
else
uniquePass=uniquePass+userInput
}发布于 2015-01-16 14:03:44
使用此函数,您将能够查看字符串是否包含唯一字符
public static boolean checkForUnique(String str){
boolean containsUnique = false;
for(char c : str.toCharArray()){
if(str.indexOf(c) == str.lastIndexOf(c)){
containsUnique = true;
} else {
containsUnique = false;
}
}
return containsUnique;
}更新:
这将在每次用户输入一个字符时运行,如果它失败,这将意味着有一个重复。您可以选择放弃该输入或显示错误。
https://stackoverflow.com/questions/27985641
复制相似问题