我需要设置一个变量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);
答案 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"));
}
解决方案:
;
insideIf = msgName.substring(0,1).equals("1");
- 没有真正的if语句的原因,你只需要表达式的布尔值!
String.startsWith()
来提高可读性!答案 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循环在这里结束并且它正在顺序执行下一行。 我希望这是自我解释。 问候 阿尼尔