Pracuję nad programem, który wymaga ode mnieweź wejście użytkownika ciągów oddzielone spacjami i ponownie wypisz te łańcuchy w kolejności losowej Powiedziano mi, aby użyć metody StdIn.readString () do pobrania danych wejściowych użytkownika.
Wkrótce zdałem sobie sprawę, że tylko metoda readString ()czyta pierwszy token i zatrzymuje się. Zakładam więc, że potrzebowałbym pętli while do czytania, dopóki użytkownik nie zakończy wpisywania wszystkich ciągów. Pomyślałem o stworzeniu pętli while z wariacją StdIn.isEmpty () będącą prawdziwą, aby przerwać pętlę, ale okazało się, że gdy użytkownik uruchomi klucz wartości, zawsze zwraca "True". W ten sposób utknąłem w nieskończonej pętli oczekiwania na wpisanie przez użytkownika kolejnych Ciągów.
Jawadok dla StdIn jest tutaj: http://algs4.cs.princeton.edu/code/javadoc/edu/princeton/cs/algs4/StdIn.html#readString()
Uproszczony kod znajduje się poniżej:
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
Wiem, że do czytania w liczbach całkowitych lub podwójnych, ludziezwykle ustawia wartosc wartosci wartosci, ale nie jestem pewien jaka wartosc wartosci ustawiona do odczytu w napisach. Czekam na twoją pomoc, wielkie dzięki z góry!
Odpowiedzi:
0 dla odpowiedzi № 1"Aby to zrobić, w zależności od systemu operacyjnego i IDE, użyj Ctrl + d lub Ctrl + z" od http://introcs.cs.princeton.edu/java/stdlib/javadoc/StdIn.html