如何通过添加分钟并将其与用户的分钟输入进行比较来打印通过循环的随机播放列表?
How to print a random playlist that passes through the loop by adding the minutes and compare it to the user's minute input?
我正在尝试打印一个广播节目的随机播放列表。因此,它会在每次循环时添加分钟。于是节目主持人进入一个时间段。例如,一个 9 分钟的播放列表。我有以下数据。顺便说一句,我使用冒号前的第一个数字添加分钟。
1016,R,Hey Jude,The Beatles,3:00,T1.MP3
1017,R,Imagine,John Lennon,3:00,T1.MP3
1023,P,Louie Louie,The Kingsmen,3:00,T1.MP3
1026,P,What's Going On,Marvin Gaye,53:00,T1.MP3
它应该只打印前三个。如果是 7 分钟,则打印前两个,只要它接近时间段。少或多 5 分钟。我似乎无法找到正确的 if 条件。当我输入某些内容时,它不会打印任何内容。我得到的只是一个空白的控制台。
private void createRandomPlayList()
{
int randomPickTime = 0;
int newMin = 0;
String timeSegment = JOptionPane.showInputDialog("Enter the time segment");
int newTimeSegment = Integer.parseInt(timeSegment);
Collections.shuffle(radioList);
for(Radio radioShows : radioList)
{
String min = radioShows.getPlayTime().substring(0,2);
min = min.replaceAll(":$", "");
newMin = Integer.parseInt(min);
randomPickTime += newMin;
String minInStr = Integer.toString(newMin);
if(newTimeSegment >= randomPickTime)
{
if(minInStr.equalsIgnoreCase(radioShows.getPlayTime().substring(0,2)))
{
System.out.println(radioShows);
}
}
}
}
这似乎有点过于复杂,请考虑
String min = radioShows.getPlayTime().split(":")[0];
newMin = Integer.parseInt(min);
randomPickTime += newMin;
String minInStr = Integer.toString(newMin);
if(newTimeSegment >= randomPickTime)
{
// why is this necessary?
// if anything it should compare to **min**
// if(minInStr.equalsIgnoreCase(radioShows.getPlayTime().substring(0,2)))
{
System.out.println(radioShows);
}
}
else {break;}
if(newTimeSegment >= randomPickTime)
{
if(minInStr.equalsIgnoreCase(radioShows.getPlayTime().substring(0,2)))
{
System.out.println(radioShows);
}
}
如果您想使用该代码,则子字符串应仅为 (0,1)。另外,我认为这不是问题所在,如果您删除 if 语句,我认为它会很好地工作。
我正在尝试打印一个广播节目的随机播放列表。因此,它会在每次循环时添加分钟。于是节目主持人进入一个时间段。例如,一个 9 分钟的播放列表。我有以下数据。顺便说一句,我使用冒号前的第一个数字添加分钟。
1016,R,Hey Jude,The Beatles,3:00,T1.MP3
1017,R,Imagine,John Lennon,3:00,T1.MP3
1023,P,Louie Louie,The Kingsmen,3:00,T1.MP3
1026,P,What's Going On,Marvin Gaye,53:00,T1.MP3
它应该只打印前三个。如果是 7 分钟,则打印前两个,只要它接近时间段。少或多 5 分钟。我似乎无法找到正确的 if 条件。当我输入某些内容时,它不会打印任何内容。我得到的只是一个空白的控制台。
private void createRandomPlayList()
{
int randomPickTime = 0;
int newMin = 0;
String timeSegment = JOptionPane.showInputDialog("Enter the time segment");
int newTimeSegment = Integer.parseInt(timeSegment);
Collections.shuffle(radioList);
for(Radio radioShows : radioList)
{
String min = radioShows.getPlayTime().substring(0,2);
min = min.replaceAll(":$", "");
newMin = Integer.parseInt(min);
randomPickTime += newMin;
String minInStr = Integer.toString(newMin);
if(newTimeSegment >= randomPickTime)
{
if(minInStr.equalsIgnoreCase(radioShows.getPlayTime().substring(0,2)))
{
System.out.println(radioShows);
}
}
}
}
这似乎有点过于复杂,请考虑
String min = radioShows.getPlayTime().split(":")[0];
newMin = Integer.parseInt(min);
randomPickTime += newMin;
String minInStr = Integer.toString(newMin);
if(newTimeSegment >= randomPickTime)
{
// why is this necessary?
// if anything it should compare to **min**
// if(minInStr.equalsIgnoreCase(radioShows.getPlayTime().substring(0,2)))
{
System.out.println(radioShows);
}
}
else {break;}
if(newTimeSegment >= randomPickTime)
{
if(minInStr.equalsIgnoreCase(radioShows.getPlayTime().substring(0,2)))
{
System.out.println(radioShows);
}
}
如果您想使用该代码,则子字符串应仅为 (0,1)。另外,我认为这不是问题所在,如果您删除 if 语句,我认为它会很好地工作。