如何检查客户端的输入流是否为int数据?

时间:2015-10-01 08:31:55

标签: java int client-server inputstream outputstream

在我的客户端 - 服务器程序中,客户端应该能够发送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);

                }

2 个答案:

答案 0 :(得分:0)

根据您发布的代码,您似乎只是从流中获取值并将其解析为字符串。如果你把它作为字符串,你可以打电话

Integer.parseInt(ansMsg);

如果值不是整数,则会抛出NumberFormatException。此时,您可以根据需要处理异常(无所事事)。您需要使用try catch声明,但这只是一种方法。

答案 1 :(得分:0)

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

      return; //Do nothing.
 }