gpt4 book ai didi

java - 如何实现用户验证以仅接受少数字母有效

转载 作者:行者123 更新时间:2023-12-02 10:59:55 26 4
gpt4 key购买 nike

我在程序的输入验证方面遇到问题。

       public static boolean inputValidation(String input) {
for ( int i = 0; i < input.length(); i++){
char c = input.charAt(i);
if (!Character.isDigit(c) && c != A || c != J || c != Q || c != K || c != 'a' || c != 'j' || c != 'q' || c != 'k') {
return false;
}

}
return true;
}

这是我到目前为止的代码,但是当我与其余代码一起运行它时,它没有正确验证它,它只是按原样继续程序

        int input1 = humanVersion(operands[0]);
int input2 = humanVersion(operands[1]);
String input1String = String.valueOf(input1);
String input2String = String.valueOf(input2);
boolean valid1 = inputValidation(input1String);
boolean valid2 = inputValidation(input2String);

while (!valid1 || !valid2){
if (!valid1){
System.out.println("invalid input 1");
}
if (!valid2){
System.out.println("invalid input 2");
}
System.out.println("Enter valid input: ");

stringInput = scan.nextLine();
operands = stringInput.split(" ");
//
input1 = humanVersion(operands[0]);
input2 = humanVersion(operands[1]);
//
input1String = String.valueOf(input1);
input2String = String.valueOf(input2);
//
valid1 = inputValidation(input1String);
valid2 = inputValidation(input2String);

}

该程序基于用户输入的基于 14 进制的 2 个数字的加法和乘法。包含字符 0-9、A、J、K 和 Q。我的想法是查看输入中是否有除 A、J、K 和 Q 之外的任何字母,如果有无效的字母,则再次询问输入。

最佳答案

问题出在您的inputValidation()方法中

  1. 存在编译错误;您应该将 A 括在单个引号中,而不是 c != A,因为您在这里指的是字符,而不是变量
  2. if 逻辑似乎不正确。如果你想知道你的角色是否在某个特定的集合或字符内,你应该使用||

您可以像这样修改 if 语句,然后它应该可以工作

if (!(Character.isDigit(c) || c == 'A' || c == 'J' || c == 'Q' 
|| c == 'K' || c == 'a' || c == 'j' || c == 'q' || c == 'k')) {
...

或者使用您的逻辑,将 && 放在整个地方:

if (!Character.isDigit(c) && c != 'A' && c != 'J' && c != 'Q'
&& c != 'K' && c != 'a' && c != 'j' && c != 'q' && c != 'k') {

关于java - 如何实现用户验证以仅接受少数字母有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51413987/

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