Repository navigation
Expand file tree
/
Copy pathProb08.java
More file actions
72 lines (53 loc) · 1.68 KB
/
Copy pathProb08.java
File metadata and controls
72 lines (53 loc) · 1.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import java.io.*;
import java.util.*;
public class Prob08 {
public static class Song implements Comparable{
String name;
String artist;
Song(String n, String a){
name = n;
artist = a;
}
public int compareTo(Object o){
Song otherSong = (Song) o;
String other = otherSong.artist.toLowerCase();
if (other.indexOf("the ") == 0){
other = other.replace("the ", "");
}
//other.trim();
String clean = artist.toLowerCase();
if (clean.indexOf("the ") == 0){
clean = clean.replace("the ", "");
}
//clean = clean.trim();
if (clean.compareTo(other) != 0){
return clean.compareTo(other);
}
return name.toLowerCase().compareTo(otherSong.name.toLowerCase());
}
public String toString(){
return name + " - " + artist;
}
}
public static void main(String[] args) throws IOException {
Scanner in = new Scanner(new File("Prob08.in.txt"));
int T = in.nextInt();
for(int i=0; i<T; i++) {
int N = in.nextInt();
in.nextLine();
List<Song> songs = new ArrayList<Song>();
for(int j=0; j<N; j++) {
String song = in.nextLine();
//System.out.println(song);
String artist = song.substring(song.indexOf("-")+2);
String name = song.substring(0, song.indexOf("-")-1);
songs.add(new Song(name, artist));
}
Collections.sort(songs);
for (Song s: songs){
System.out.println(s);
}
}
in.close();
}
}