[英]How do I check if the inputstream from client side is an int data?
在我的客戶端服務器程序中,客戶端應該能夠發送string
和int
值。 服務器只有在為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.