如何在java中与字符串进行比较?

时间:2014-05-05 06:39:18

标签: java jsp bufferedreader filereader

您好我正在修改从文件读取数据然后我想比较我的字符串中的字符串 我该字符串等于我的字符串然后运行如果条件否则条件

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>

我如何获得目标?

提前致谢

2 个答案:

答案 0 :(得分:3)

阅读您的代码:

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

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

line不为空时,你有一个while循环继续运行。因此,当line为空时,它会停止。因此,在if测试中,line保证为空。因此,测试保证抛出NullPointerException,因为在null上调用方法没有意义。

请注意,如果在上面的代码中,您的代码已正确缩进,您将能够立即看到其结构和逻辑。如果没有缩进代码,就会让自己感到困惑和不清楚。

答案 1 :(得分:1)

您将在java.lang.NullPointerException行获得if(line.equalsIgnoreCase(s1)),因为在您的while循环中,您检查了line != null,并且直到该行不为空,您的循环执行以及何时line=null,代码从循环中退出,并且您在检查if(line.equalsIgnoreCase(s1))line=null后发生if条件,因此您将获得NullPointerException if条件。

我想你想要这个:

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