繁体   English   中英

如何与Java中的字符串进行比较?

[英]How to compare to string in java?

嗨,我正试图从文件中读取数据,然后我想从我的字符串中比较该字符串,如果该字符串等于我的字符串,则在有条件的情况下运行,否则在其他情况下运行

My.jsp

   <%@ page language="java" contentType="text/html;charset=UTF-8" %>
<%@ page import="java.io.*" %>
<html>
<body>


       <%
           String s1="1";
          // int i=4;
           // String s=null;
          // String s2="1";
           String s3=null;
            String file = application.getRealPath("/") + "data.txt";
           BufferedReader reader = new BufferedReader(new FileReader(file));

            String line;
            while((line = reader.readLine())!= null){

                s3=line.toString();
            }

  if(s3.equalsIgnoreCase(s1))
      %>
     <%@ include file="MarketWiseData.jsp" %>
     <%else
  {%>
      <%@ include file="CommodityWise.jsp" %>
<%
          }
%>

</body>
</html>

我如何获得目标?

提前致谢

阅读您的代码:

while((line = reader.readLine()) != null) {
    // sb.append(line+"\n");
    out.println(line);
}

if (line.equalsIgnoreCase(s1))
    out.println("Shkati");
else {
    out.println("sharma");
}

您有一个while循环,当line不为null时,它将继续运行。 因此,当line为null时,它将停止。 所以,在if测试, line保证是零。 这样就可以保证测试抛出NullPointerException,因为在null上调用方法没有任何意义。

请注意,如果像我上面的代码一样,您的代码已正确缩进,则可以立即看到其结构和逻辑。 无法缩进代码会使您感到困惑和不清楚。

您将在if(line.equalsIgnoreCase(s1))行获得java.lang.NullPointerException ,因为在while循环中,您需要检查line != null ,直到该行不为null为止,循环才会执行,何时执行line=null ,代码从循环退出,并且if条件发生,您在其中检查了if(line.equalsIgnoreCase(s1))并且由于line=null ,因此您将在if条件下获得NullPointerException

我想你想要这个:

while((line = reader.readLine())!= null){
if(line.equalsIgnoreCase(s1))
     out.println("Shkati");
  else
  {
  out.println("sharma");
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM