/ / Più parole in una stringa? - java

Più parole in una stringa? - java

Sto cercando di creare un programma impiccato, dove le parole sono già impostate all'inizio e l'utente deve cercare di indovinarle.

Ma sto avendo seri problemi cercando di capire come dividere le parole in modo da poter ottenere il programma per sceglierne uno a caso.

Ho provato a dichiarare le seguenti parole come una stringa, come faccio a sceglierne una invece di tutte, o è anche corretta?

Inoltre ho solo avviato java in modo da poter usare solo le istruzioni, ecc., Visto alcune persone che usano gli array, ma non posso usarli come questo è per un progetto e non dovrei sapere come.

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

risposte:

1 per risposta № 1

Siccome non ti è permesso usare gli array, potresti prima creare un numero casuale e poi, in base al risultato, selezionare una delle stringhe.

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";
...

Dopodichè word manterrà la parola java selezionata a caso per te.


Ma come già affermato da altri, questo è applicabile solo se non si possono usare gli array. In generale si dovrebbe usare l'approccio con split e seleziona uno degli elementi o avresti un file separato con parole come linee e poi seleziona una delle righe nel documento a caso.

Il secondo approccio ha il vantaggio di poter aggiungere nuove parole senza modificare il programma.

Inoltre, la lettura di una riga specifica di un documento per ottenere il suo contenuto è persino possibile senza utilizzare gli array. Potresti usare la risposta Qui e basta chiamare readLine un numero casuale di volte e poi prendendo la stringa che ha restituito come parola.


0 per risposta № 2

Esiste una funzione divisa che prende un pattern come input e restituisce un array di stringhe. Vedere il documentazione.

Ecco un esempio

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

0 per risposta № 3

La funzione split è adatta per questo:

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

Utilizzerai le variabili e assegnerai loro gli indici delle stringhe di risultato. Per ottenere una parola particolare.

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