Java 如果块以假值执行,则使用子字符串和等于方法
如果字符串以“1”开头,但下面的代码返回一个真值,我需要将变量设置为false?我试过苹果这个词。我的代码有问题吗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 :"+
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'