有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java If block使用substring和equals方法以假值执行

如果字符串以“1”开头,我需要将变量设置为false,但下面的代码会返回真值吗?我试过“苹果”这个词。我的代码有问题吗

String msgName=request.getParameter("msgName");
boolean insideIf=false; 

if(msgName.substring(0,1).equals("1"));
    {
        insideIf=true;
                System.out.println("if status :"+msgName.substring(0,1).equals("1"));

    } System.out.println("insideIf :"+insideIf);

共 (5) 个答案

  1. # 1 楼答案

    if(msgName.substring(0,1).equals("1"));
    

    实际上是执行一个空语句,如果条件产生true,那么它总是调用块:

    {
        insideIf=true;
                System.out.println("if status :"+msgName.substring(0,1).equals("1"));
    
    }
    

    解决方案:

    1. [不那么优雅]-移除;
    2. 你总是可以设置insideIf = msgName.substring(0,1).equals("1");-if语句没有真正的理由,你只需要表达式的布尔值!
      • 您还可以使用^{}来进一步提高可读性
  2. # 2 楼答案

    这是错误线

    if(msgName.substring(0,1).equals("1")); 
    

    if语句之后不应该有“;”因为你已经放置了“;”;“因此,这个if循环在这里结束,并按顺序执行下一行。 我希望这是自我解释。 当做 阿尼尔

  3. # 3 楼答案

    或许可以选择:

    myString。startsWith('1')

    我认为这不需要解释

  4. # 4 楼答案

    在if语句的末尾添加了分号,因此if-else条件根本不执行。 以下是我认为有效的方法

    String msgName=request.getParameter("msgName");
     boolean insideIf=false; 
    
    if(msgName.substring(0,1).equals("1"))
    {
        insideIf=true;
                System.out.println("if status :"+msgName.substring(0,1).equals("1"));
    
    } System.out.println("insideIf :"+insideIf);
    
  5. # 5 楼答案

    它是:-) 在if后面有一个分号

    String msgName=request.getParameter("msgName");
    boolean insideIf=false; 
    
    if(msgName.substring(0,1).equals("1"))
        {
            insideIf=true;
                    System.out.println("if status :"+msgName.substring(0,1).equals("1"));
    
        } System.out.println("insideIf :"+insideIf);