/ / StdIn, Como ler cadeias separadas por espaços sem ficar preso em loop infinito esperando por mais entrada do usuário - java, string, input, while-loop, stdin

StdIn, Como ler cadeias separadas por espaços sem ficar preso em loop infinito esperando por mais entrada do usuário - java, string, input, while-loop, stdin

Eu estou trabalhando em um programa que requer que eupegue a entrada do usuário de Strings separadas por espaços e imprima as strings em ordem aleatória novamente. Fui avisado para usar o método StdIn.readString () para obter a entrada do usuário.

Logo percebi que somente o método readString ()lê o primeiro token e pára. Então eu suponho que eu precisaria de um loop while para continuar lendo até que o usuário tenha terminado de digitar todas as Strings. Eu pensei em criar um loop while com a condição de quebra de StdIn.isEmpty () sendo verdade para quebrar o loop, mas descobri que uma vez que o usuário iniciou a chave em valor, sempre retorna "True". Assim, estou preso no ciclo infinito de esperar que o usuário digite mais Strings.

O javadoc para o StdIn está aqui: http://algs4.cs.princeton.edu/code/javadoc/edu/princeton/cs/algs4/StdIn.html#readString()

O código simplificado está abaixo:

public static void main(String args[])  {
/*
* This is placeholder, I do not know how long the user input String is.
*/
String[] s = new String[10];
int index = 0;
while(StdIn.isEmpty())  {
s[index] = StdIn.readString();
index++;
}
}

// from here I would like to do other actions, but I cannot break the while loop

Eu sei para ler em números inteiros ou duplos, pessoastendem a definir um valor de sentinela, mas não tenho certeza de qual valor de sentinela definir para leitura em Strings. Ansioso para sua ajuda, muito obrigado antecipadamente!

Respostas:

0 para resposta № 1

"Para fazer isso, dependendo do sistema operacional e do IDE, use Ctrl + d ou Ctrl + z" http://introcs.cs.princeton.edu/java/stdlib/javadoc/StdIn.html