如何通过添加分钟来打印通过循环的随机播放列表,并将其与用户的分钟输入进行比较?



我正在尝试打印一个广播节目的随机播放列表。所以它每次循环都会增加分钟数。因此,唱片骑师进入了一个时间段。例如,一个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分钟或多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);
}
}
}
}
if(newTimeSegment >= randomPickTime)    
{
if(minInStr.equalsIgnoreCase(radioShows.getPlayTime().substring(0,2)))
{
System.out.println(radioShows);
}
}

如果要使用该代码,则子字符串应仅为(0,1)。此外,我不认为这是问题所在,如果你删除if语句,我认为它会很好地工作。

这似乎有点过于复杂,请考虑

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;}

最新更新