2017-02-14 4 views
0

라디오 쇼에 임의의 재생 목록을 인쇄하려고합니다. 그래서 반복 할 때마다 분이 추가됩니다. 그래서 디스크 자키는 시간 세그먼트를 입력합니다. 예를 들어, 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 

첫 번째 3 개만 인쇄해야합니다. 7 분이면 처음 두 개를 인쇄하고 시간 세그먼트에 가까울수록 인쇄합니다. 5 분 이내 또는 그 이상. 나는 if 조건을 올바르게 찾을 수없는 것 같습니다. 그리고 뭔가를 입력 할 때 아무 것도 인쇄되지 않습니다. 내가 얻는 것은 빈 콘솔이다. 당신이 문자열이 있어야 할 그 코드 (0,1) 만 사용하려는 경우

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

답변

0

이 조금 지나치게 복잡한 것,

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

감사! 그것은 효과가 있었다. 두 번째 if 문만 사용하여 정수 데이터 유형 대신 문자열로 다시 비교할 것이라고 생각했습니다. –

1
 if(newTimeSegment >= randomPickTime)  
    { 
     if(minInStr.equalsIgnoreCase(radioShows.getPlayTime().substring(0,2))) 
     { 
      System.out.println(radioShows); 
     } 
    } 

을 고려하십시오. 또한 문제가 아니라고 생각합니다. if 문을 제거하면 제대로 작동 할 것입니다.