gpt4 book ai didi

java - 创建一个每次调用时打印数组列表的不同随机条目的方法?

转载 作者:行者123 更新时间:2023-12-04 05:27:15 25 4
gpt4 key购买 nike

我正在制作一个模拟媒体播放器程序,允许用户输入、编辑、删除和查看所有轨道。很基本,我知道。但是我想添加一个功能,允许每次选择“播放随机歌曲”时打印数组列表中的随机条目以模拟音乐播放器的随机播放功能。
所以我的方法会像

public void playRandom()

{
System.out.println("Now Playing: " + *insert code here?* ")
}

我有 3 个数组列表,分别代表轨道名称、轨道年份和轨道艺术家,但是当我打印到屏幕时,我希望它以这样一种方式显示:先打印艺术家,然后是连字符,然后是轨道名称?

我的代码如下:

我的主要类(class):
包 ca1;
//imports the Random mechanism
import java.util.Random;

//imports the scanner
import java.util.Scanner;


public class MainClass extends UserInput {

public String nextInt;

public static void main(String[] args) {

//Links to the UserInput class to create an object that stores
//user input
UserInput ui = new UserInput();

//Creates new scanner object
Scanner input = new Scanner(System.in);

//Declares the int "opt" so it can be used in the menu
int opt;



//Calls Methods Class so methods can be used below
Methods methodsFunctions = new Methods();


//initial prompt only displayed when program is first ran
System.out.println("Welcome to your music library");


//Usig a do while loop so that the program keeps running until
//a specific condition is met, in this case it's when 0 is selected.
do
{

//Menu Prompts printed to the screen for the user to select from
System.out.println("........ \n");
System.out.println("Press 0 to Exit\n");
System.out.println("Press 1 to Add a Song\n");
System.out.println("Press 2 to View All Songs\n");
System.out.println("Press 3 to Remove a Song\n");
System.out.println("Press 4 to Edit Song Information\n");
System.out.println("Press 5 to Play Random Song\n");
System.out.println("Press 6 to Delete All Songs\n");

//Monitors the next Int the user types
opt = input.nextInt();





//"if" statements
if (opt == 0)
{
//This corresponds to the condition of the while loop,
//The program will exit and print "Goodbye!" for the user.

System.out.println("Goodbye!");
}


else if (opt == 1)
{
//This method allows the user to add a song to the library.
//With the format being Title, Artist, Year.

methodsFunctions.addEntry();
}




else if (opt == 2)
{
//This method prints the contents of the Array List to the screen

methodsFunctions.viewAll();
}




else if (opt == 3)
{
//This method allows the user to remove an indiviual song from
//their music library

methodsFunctions.removeOne();
}



else if (opt == 4)
{
//This method allows the user to edit the data of a particular
//and then prints the new value on screen

methodsFunctions.editItem();
}


else if (opt == 5)
{
//This method will print out "Now playing" followed by a random
//song to simulate a music player's shuffle effect.


//methodsFunctions.RandomSong();
System.out.println("Now Playing ");
}



else if (opt == 6)
{
//This method will clear all contents of the library.
//It will ask the user to confirm their choice.

methodsFunctions.clearAll();
}



else
{
//If the user selects an incorrect number, the console will
//tell the user to try again and the main menu will print again

System.out.println("Incorrect Entry, please try again");
}


} //do-while loop
while (opt > 0);

}
}

我的方法类:
package ca1;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.Scanner;

public class Methods extends UserInput

{
Scanner input = new Scanner (System.in);

//Declare array lists
List<String> songName = new ArrayList<>();
List<String> songArtist = new ArrayList<>();
List<Integer> songYear = new ArrayList<>();

UserInput ui = new UserInput();

private Random newRandom;


public void clearAll(){
System.out.println("Are you sure?");
System.out.print("1: Yes \n2: No" + "\n");
System.out.print("");

int confirmDelete=input.nextInt();
if (confirmDelete == 1){
songName.clear();
songYear.clear();
System.out.println("Your music library has been cleared");
}

}

public void viewAll(){
System.out.println("\n");
for (int i = 0; i < songName.size(); i++){
int counter=i+1;
System.out.println(counter+": "+songArtist.get(i)+" - "+ songName.get(i)+ " (" +songYear.get(i)+") ");
}
System.out.println("\n");
}

public void addEntry(){
//System.out.print("Enter Name: ");
String newName = ui.getString("Enter the name of the track");
songName.add(newName);
String newArtist = ui.getString("Who performs this track");
songArtist.add(newArtist);
System.out.print("What year was the track released? ");
int newYear=input.nextInt();
songYear.add(newYear);

System.out.println("\n" + "Thank you, " +songName.get(songName.size()-1) + " has been added to the library.");
System.out.println("\n" + "Press 2 to view your library." + "\n");


/*
System.out.println("\n"+songName.get(songName.size()-1));
System.out.println("\n"+songArtist.get(songArtist.size()-1));
System.out.println("\n"+songYear.get(songYear.size()-1));
*/
}

public void removeOne(){

System.out.println(" Which song would you like to delete? (1 to "+songName.size()+")");
viewAll();
int remove=input.nextInt();
if (remove >songName.size()){
System.out.println("Invalid ");
}
else {
remove--;
System.out.println("Are you sure you would like to delete "+songArtist.get(remove)+" - "+songName.get(remove)+" (" +songYear.get(remove)+ ") from your music library?");
System.out.print("1: Yes \n2: No" + "\n");
int confirmDelete=input.nextInt();
if (confirmDelete == 1){
songArtist.remove(remove);
songName.remove(remove);
songYear.remove(remove);
System.out.println(songName.get(remove)+ " has just been removed from your music library");
// viewAll();
}
}
}


public void playRandom()
{
String RandomSong = (SongName.random);


System.out("Now playing + " RandomSong);

}


public void editItem(){
viewAll();
System.out.println("Choose the song you want to edit (1 to "+songName.size()+")");
//prints out the contents of library with first entry being index 1
//The library is numbered and goes as far as the index of the last entry

int edit=input.nextInt();
if (edit >songName.size()){
System.out.println("Invalid Selection");

//if user selects a number that corresponds to an index that's not
//In the array list, they will be shown an error.
}



else{
edit--;
System.out.println("\n" + "Enter New Track Name: ");
input.nextLine();
String editName=input.nextLine();
songName.set(edit,editName);
//Edits the songName value of the Song object selected

System.out.println("\n" + "Enter New Artist ");
String editArtist=input.nextLine();
songArtist.set(edit,editArtist);
//Edits the songArtist value of the Song object selected


System.out.println("\n" + "Enter New Year:");
int editYear;
editYear = input.nextInt();
songYear.set(edit,editYear);
//Edits the songName value of the Song object selected

System.out.print("\n" + "Your changes have been saved:" + "\n");
System.out.print("\n" + "This is your current library");
viewAll();
}
}


}

最佳答案

好吧,我认为你必须做这样的事情:

找出您的阵列有多长。例如,50 首歌曲。然后,生成一个介于 0 和 length-1 之间的随机数。

public void playRandom()
{
int randomnumber =(int)(Math.random() * (length-1));
System.out.println("Now Playing: " + arrayOfSongName[randomnumber]);
}

然后你有一个随机轨道。

关于java - 创建一个每次调用时打印数组列表的不同随机条目的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13054771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com