如果block使用false值执行,则使用substring和equals方法

时间:2012-04-23 07:30:47

标签: java jsp if-statement substring

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

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 个答案:

答案 0 :(得分:7)

是:-) 在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);

答案 1 :(得分:5)

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 :(得分: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);

答案 3 :(得分:1)

或许选择:

myString.startsWith( '1');

我认为这不需要解释。

答案 4 :(得分:1)

这是错误行

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

不应该有“;”在if语句之后。因为你已经放置了“;”所以这个if循环在这里结束并且它正在顺序执行下一行。 我希望这是自我解释。 问候 阿尼尔