我有一個程序,基本上返回一個字符串,可以有時一行(工作正常),但其他時間可能是多行,這會導致我的問題。基本上我有用戶選擇一個選項發送到第二個程序,並根據該選項它返回一個特定的字符串。但是,如果我把用戶選擇放到我的循環之外,如果返回的字符串是多行的話,它會正常工作,但我需要它通過選項菜單繼續提示用戶,直到他們選擇退出。下面是該代碼:處理多行字符串返回
System.out.print("Enter your choice: ");
fromClient = stdIn.readLine().trim();
while ((fromServer = input.readLine()) != null)
{
System.out.println("Server: " + fromServer);
if (fromServer.equals("Bye"))
break;
if(fromClient.equals("1"))
{
System.out.println("Client: " + fromClient);
output.println(fromClient);
}
if(fromClient.equals("2"))
{
System.out.println("Client: " + fromClient);
output.println(fromClient);
}
if(fromClient.equals("3"))
{
System.out.println("Client: " + fromClient);
output.println(fromClient);
}
if(fromClient.equals("4"))
{
System.out.println("Client: " + fromClient);
output.println(fromClient);
break;
}
}
這正如我上面提到返回多行字符串,很好,但它不再做提示用戶進行選項選擇。如果我在循環中移動用戶選擇並返回多行字符串,它將打印一行,要求用戶選擇,打印第二行,要求用戶選擇,打印第三行,要求用戶選擇...
因此,如果我的理解正確,有時來自服務器的響應是一行,有時多行。有什麼標誌着服務器響應的結束嗎? –