使用字母数字字符串进行验证的 Java 程序没有给我所需的输出

标签 java

使用 Java string 的验证代码没有给我所需的输出。它应该接受作为字符串字母数字的输入,并且仅当将字母数字作为 s1 字符串并将整数作为 s2 给出时,输出才有效。否则,它应该将输出作为无效输出

尝试使用 if else 循环进行验证。

import java.util.*;
//import org.apache.commons.lang.StringUtils;
public class Validation {

    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("enter the input:");
        String s1=sc.nextLine();
        String s2=sc.nextLine();
        boolean isValid1=s1.matches("[A-Za-z0-9]{10}");
        boolean isValid2=s2.matches("[0-9]");
        boolean isUpperCase=Character.isUpperCase(s1.charAt(0));
        System.out.println(isUpperCase);
        if((isValid1=true)&&(isValid2=true)&&(isUpperCase=true)){
                System.out.println("value of s1 is: "+s1);
            System.out.println("Value of S2 is: "+s2);
        }
        else if((s1.isEmpty())&&(s2.isEmpty())) {
            System.out.println("Invalid Input");
        }
        else {
            System.out.println("Invalid Input");
        }
    }    
}

仅当 s1 为字母数字且 s2 为整数时,输出才应显示 s1 和 s2 的值。否则,它应该将输出显示为无效输入。

最佳答案

在您的代码中,您使用了“=”来分配值。要进行比较,您应该使用“==”:

if((isValid1==true)&&(isValid2==true)&&(isUpperCase==true))

而不是

if((isValid1=true)&&(isValid2=true)&&(isUpperCase=true))

关于使用字母数字字符串进行验证的 Java 程序没有给我所需的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56219956/

相关文章:

java - 确定列表大小的最快方法

java - 如何将 spring 中的@Lob 数据保存到 Postgres 数据库中?

java - 在 Java 8 中将 while 循环转换为流

java - 获取二叉树每个节点的级别

java - 使用 commons-beanutils 在 org.apache.commons.logging.LogFactory 上抛出 ClassNotFoundException

java - 将 IDL 枚举解析为 Java 枚举

java - 拉取所有带有注解的字段(包括一个对象中的字段在另一个对象中和内部类中的字段)

java - 为什么我的代码不能可靠地单击下拉菜单项?

java - Eclipse - Android 应用程序崩溃

java - 如何在thymeleaf模板中添加html标签?