/ / Wiele słów w jednym ciągu? - java

Wiele słów w jednym ciągu? - java

Próbuję utworzyć program kata, w którym słowa są już ustawione na początku, a użytkownik musi je odgadnąć.

Ale mam poważne problemy z próbą podzielenia słów na części, aby program wybrał losowe z nich.

Próbowałem zadeklarować następujące słowa jako ciąg, jak wybrać jedno zamiast nich wszystkich, czy to w ogóle poprawne?

Uruchomiłem także java, więc mogę używać tylko instrukcji if, widziałem kilka osób korzystających z tablic, ale nie mogę ich używać, ponieważ jest to projekt i nie powinienem wiedzieć, jak to zrobić.

String words = "cat:dog:hat:sat:mat:rat";

Odpowiedzi:

1 dla odpowiedzi № 1

Ponieważ nie możesz używać tablic, możesz najpierw utworzyć losową liczbę, a następnie w zależności od wyniku wybrać jeden z ciągów.

Random random = new Random();
int outcome = random.nextInt(6); // 6 being the number of different words
String word = "";
if (outcome == 0)
word = "cat";
else if (outcome == 1)
word = "dog";
...

Po tym word przechowuje dla ciebie losowo wybrane słowo java.


Ale jak już powiedzieli inni, ma to zastosowanie tylko wtedy, gdy nie możesz używać tablic. Ogólnie rzecz biorąc, albo używałbyś tego podejścia z split i wybierz jeden z elementów, aby uzyskać osobny plik ze słowami jako liniami, a następnie losowo wybierz jedną z linii w dokumencie.

Drugie podejście ma tę zaletę, że można dodawać nowe słowa bez zmiany programu.

Dodatkowo czytanie określonego wiersza dokumentu w celu uzyskania jego zawartości jest nawet możliwe bez użycia tablic. Możesz skorzystać z odpowiedzi tutaj i po prostu zadzwoń readLine losową liczbę razy, a następnie biorąc ciąg znaków zwrócił jako słowo.


0 dla odpowiedzi nr 2

Istnieje funkcja podziału, która pobiera wzorzec jako dane wejściowe i zwraca tablicę ciągów. Zobacz dokumentacja.

Oto przykład

String words = "cat:dog:hat:sat:mat:rat";
String[] array = words.split(":");

0 dla odpowiedzi № 3

Funkcja podziału jest odpowiednia do tego:

String[] str_array = "name:score:abc".split(":");

Użyjesz zmiennych i przypiszesz indeksy ciągów wyników. Aby uzyskać określone słowo.

    String stringa = str_array[0];
String stringb = str_array[1];
String stringc = str_array[2];