How to use the random function to randomly select a string from an array?

63 Replies
JavaBot
JavaBot3y ago
Hey, @xNug! Please remember to /close this post once your question has been answered!
Kyo-chan
Kyo-chan3y ago
As you've noticed, these strings are in an array, each in a different index, 0 to 4 So pick a random number from 0 to 4 and take the string that's at that index
Unknown User
Unknown UserOP3y ago
Message Not Public
Sign In & Join Server To View
Kyo-chan
Kyo-chan3y ago
Those 5 numbers are 0 to 4 It's the same as for any range of numbers from 0 to something
Unknown User
Unknown UserOP3y ago
Message Not Public
Sign In & Join Server To View
Kyo-chan
Kyo-chan3y ago
Not when you pick them, no You'll notice that computers tend to royally not care why you make them do stuff
Unknown User
Unknown UserOP3y ago
Message Not Public
Sign In & Join Server To View
Kyo-chan
Kyo-chan3y ago
I want you to use Random in the normal way
Unknown User
Unknown UserOP3y ago
Message Not Public
Sign In & Join Server To View
Kyo-chan
Kyo-chan3y ago
Do you just refuse to look it up?
Unknown User
Unknown UserOP3y ago
Message Not Public
Sign In & Join Server To View
imp_o_rt
imp_o_rt3y ago
is it ok to select the same name multiple times @xNug
Unknown User
Unknown UserOP3y ago
Message Not Public
Sign In & Join Server To View
imp_o_rt
imp_o_rt3y ago
Baeldung
Java - Get Random Item/Element From a List | Baeldung
A quick and practical guide to picking a random item/items from a List in Java.
imp_o_rt
imp_o_rt3y ago
this one specifically uses an array so you don't have to change list semantics into array semantics https://stackoverflow.com/a/8065554/3243226
Stack Overflow
How to randomly pick an element from an array
I am looking for solution to pick number randomly from an integer array. For example I have an array new int[]{1,2,3}, how can I pick a number randomly?
Unknown User
Unknown UserOP3y ago
Message Not Public
Sign In & Join Server To View
imp_o_rt
imp_o_rt3y ago
no worries
Unknown User
Unknown UserOP3y ago
Message Not Public
Sign In & Join Server To View
imp_o_rt
imp_o_rt3y ago
Show code I assume you've just used the method but it can't access your array So you can just move the code into your main class or give the array to the method as a parameter
Unknown User
Unknown UserOP3y ago
Message Not Public
Sign In & Join Server To View
imp_o_rt
imp_o_rt3y ago
yeah you just need String myRandomName = names[randomIndex]; you're not returning anything here @xNug
Unknown User
Unknown UserOP3y ago
Message Not Public
Sign In & Join Server To View
imp_o_rt
imp_o_rt3y ago
you want to print randomIndex not generator
Unknown User
Unknown UserOP3y ago
Message Not Public
Sign In & Join Server To View
imp_o_rt
imp_o_rt3y ago
wait you've compressed 3 lines into 2 for some reason
Unknown User
Unknown UserOP3y ago
Message Not Public
Sign In & Join Server To View
imp_o_rt
imp_o_rt3y ago
don't remove it, changei t
Unknown User
Unknown UserOP3y ago
Message Not Public
Sign In & Join Server To View
imp_o_rt
imp_o_rt3y ago
Random generator = new Random();
int randomIndex = generator.nextInt(names.length);
String randomlySelectedName = names[randomIndex];
Random generator = new Random();
int randomIndex = generator.nextInt(names.length);
String randomlySelectedName = names[randomIndex];
Unknown User
Unknown UserOP3y ago
Message Not Public
Sign In & Join Server To View
imp_o_rt
imp_o_rt3y ago
yes, hence int randomIndex
Unknown User
Unknown UserOP3y ago
Message Not Public
Sign In & Join Server To View
imp_o_rt
imp_o_rt3y ago
but instead of returning it (to nowhere), save it to a variable called - in this case - randomlySelectedName
Unknown User
Unknown UserOP3y ago
Message Not Public
Sign In & Join Server To View
imp_o_rt
imp_o_rt3y ago
which one do you think
Unknown User
Unknown UserOP3y ago
Message Not Public
Sign In & Join Server To View
imp_o_rt
imp_o_rt3y ago
it's the randomly selected name so if you want to print that ou then yeah it's in that variable
Unknown User
Unknown UserOP3y ago
Message Not Public
Sign In & Join Server To View
imp_o_rt
imp_o_rt3y ago
why not just try it give it a go and see what happens, print both and see what each does
Unknown User
Unknown UserOP3y ago
Message Not Public
Sign In & Join Server To View
imp_o_rt
imp_o_rt3y ago
the computer won't be upset you ran the program multiple times
Unknown User
Unknown UserOP3y ago
Message Not Public
Sign In & Join Server To View
imp_o_rt
imp_o_rt3y ago
What is specifically happening that's bypassing the random function of needing an integer input
nothing, we're using the array's length as the (integer) input we're passing names.length as the parameter to nextInt; names.length is an int
Unknown User
Unknown UserOP3y ago
Message Not Public
Sign In & Join Server To View
imp_o_rt
imp_o_rt3y ago
arrays report their length using .length, this value is an integer; is that clear so far
Unknown User
Unknown UserOP3y ago
Message Not Public
Sign In & Join Server To View
imp_o_rt
imp_o_rt3y ago
generator.nextInt(...) takes an int argument, do you agree?
Unknown User
Unknown UserOP3y ago
Message Not Public
Sign In & Join Server To View
imp_o_rt
imp_o_rt3y ago
so if the array produces its length as an int, and nextInt takes an int, i can pass the array's length into nextInt
Unknown User
Unknown UserOP3y ago
Message Not Public
Sign In & Join Server To View
imp_o_rt
imp_o_rt3y ago
that's the next step
Unknown User
Unknown UserOP3y ago
Message Not Public
Sign In & Join Server To View
imp_o_rt
imp_o_rt3y ago
yes but that's the next step, i need to ask for a randomly generated position
Unknown User
Unknown UserOP3y ago
Message Not Public
Sign In & Join Server To View
imp_o_rt
imp_o_rt3y ago
but in order to get Random to not generate any old random shite, i can give it an upper bound (which is the int argument) so what i'm saying to random is "please generate me a random number between 0 and this int input (exclusive)"
Unknown User
Unknown UserOP3y ago
Message Not Public
Sign In & Join Server To View
imp_o_rt
imp_o_rt3y ago
the int input is the length of this array random says ok here you go....2 i now have the random position generated for me by Random i can now go back to my array and say hey can you give me the 2th position please it says here you go, jeff so step 1 is ask random for a random number up to (but not including) the length of my array step 2 is ask the array for the array position corresponding to taht randomly generated number
Unknown User
Unknown UserOP3y ago
Message Not Public
Sign In & Join Server To View
imp_o_rt
imp_o_rt3y ago
so that's how we randomly select a value from an array it might be useful to look at the docs of nextInt(int):
public int nextInt(int bound) Returns a pseudorandom, uniformly distributed int value between 0 (inclusive) and the specified value (exclusive),
Unknown User
Unknown UserOP3y ago
Message Not Public
Sign In & Join Server To View
imp_o_rt
imp_o_rt3y ago
no worries
JavaBot
JavaBot3y ago
Post Closed
This post has been closed by <@241324519594131497>.

Did you find this page helpful?