Java 如果块以假值执行,则使用子字符串和等于方法

Java 如果块以假值执行,则使用子字符串和等于方法,java,jsp,if-statement,substring,Java,Jsp,If Statement,Substring,如果字符串以“1”开头,但下面的代码返回一个真值,我需要将变量设置为false?我试过苹果这个词。我的代码有问题吗 String msgName=request.getParameter("msgName"); boolean insideIf=false; if(msgName.substring(0,1).equals("1")); { insideIf=true; System.out.println("if status :"+

如果字符串以“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);

在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);
它是:- 在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);
或许可以选择:

myString.startsWith'1'

我认为这不需要解释

if(msgName.substring(0,1).equals("1"));
如果条件为true,则实际执行空语句-之后,它总是调用块:

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

}
解决方案:

[不太雅致]-移除; 您始终可以将insideIf=msgName.substring0,1.equals1;-if语句没有真正的理由,您只需要表达式的布尔值! 您还可以使用来进一步提高可读性! 这是错误行

if(msgName.substring(0,1).equals("1")); 
不应该有在if语句之后。既然你已经放置;所以这个if循环在这里结束,它正在按顺序执行下一行。 我希望这是自我解释。 当做
Anil

您已经得到了答案,因此只需再提出一个建议,使用charAt检查单个字符myString.charAt0=='1'