簡體   English   中英

如何檢查來自客戶端的輸入流是否為int數據?

[英]How do I check if the inputstream from client side is an int data?

在我的客戶端服務器程序中,客戶端應該能夠發送stringint值。 服務器只有在為string時才接受並執行相應的操作。 否則,如果它是一個int ,則服務器將無法處理它(或對其不執行任何操作)。 如何在if語句中實現此邏輯。 我正在嘗試類似的事情,但是hasNextInt()方法顯示錯誤:

if(!incomingInput.hasNextInt){
//do nothing
}

這是我正在工作的部分:

   if (msgFromClient != null && !msgFromClient.hasNextInt()) {
                    OutputStream clientOut = client.getOutputStream();
                    PrintWriter pw = new PrintWriter(clientOut, true);
                    String ansMsg = "Hello, " + msgFromClient;
                    pw.println(ansMsg);

                }

根據您發布的代碼,您似乎只是從流中獲取值並將其解析為字符串。 如果將其作為字符串,則可以調用

Integer.parseInt(ansMsg);

如果該值不是整數,則將引發NumberFormatException。 此時,您可以根據需要處理異常(不執行任何操作)。 您需要使用try catch語句,但這是解決問題的一種方法。

   try{
      int num = Integer.parseInt(str);
      //if int
    } catch (NumberFormatException e) {

      return; //Do nothing.
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM