簡體   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