2015-10-01 7 views
0

В моей клиент-серверной программе клиент должен иметь возможность отправлять string и int значение. Сервер будет принимать и выполнять соответствующую операцию только в том случае, если он равен string. В противном случае, если его int, сервер не сможет справиться с ним (или ничего не делать с ним). Как реализовать эту логику в инструкции if. я пытался что-то вроде этого, но hasNextInt() метод показывает ошибку:Как проверить, является ли входной поток с клиентской стороны данными int?

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); 

       } 

ответ

0

Основываясь на коде, вы в курсе, это выглядит например, вы просто берете значение из потока и разбираете его как строку. Если взять его в виде строки, вы могли бы назвать

Integer.parseInt(ansMsg); 

Какой будет бросать NumberFormatException, если значение не является целым числом. На этом этапе вы можете обрабатывать исключение по своему усмотрению (ничего не делая). Вам нужно будет использовать оператор try catch, но это один из способов его решения.

+0

XtrmJosh, на самом деле я просто хочу, чтобы добавить условие внутри, если заявление так, что он говорит: «если msgFromClient не равно нулю, а также не INT, дать ответ обратно клиенту». Надеюсь, вы поняли это. – Esha

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

     return; //Do nothing. 
}