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