我正在尝试用Java编写用于mp3类的代码。我希望能够完成对标题和艺术家的全部或部分搜索,它将显示在包含部分字符串的歌曲上。
这是我到目前为止编写的代码..如果用户输入完整的标题或完整的艺术家名称,它只能在测试人员中使用:
班级代码
public void searchByArtist(String artist){
for(Song s : songs){
if(s.getArtist().equalsIgnoreCase(artist)){
System.out.println(s.toString());
}
}
//search for a song by title
public void searchByTitle(String title){
for(Song s : songs){
if(s.getTitle().equalsIgnoreCase(title)){
System.out.println(s.toString());
}
}
}
测试人员代码
case 4:
keyIn.nextLine(); //clear the buffer of the previous option
System.out.println();
System.out.print("Please enter Title: ");
title = keyIn.nextLine();
player.searchByTitle(title);
break;
case 5:
keyIn.nextLine(); //clear the buffer of the previous option
System.out.println();
System.out.print("Please enter Artist: ");
artist = keyIn.nextLine();
player.searchByArtist(artist);
break;
答案 0 :(得分:1)
要以不区分大小写的方式匹配部分和,一种简单的方法是将equalsIgnoreCase
替换为toLowerCase()
,然后替换contains
,例如:
String search = artist.toLowerCase();
for (Song s : songs) {
if (s.getArtist().toLowerCase().contains(search)) {
System.out.println(s.toString());
}
}
请注意toLowerCase()
是特定于语言环境的。如果标题不在默认语言环境中,请确保将相应的Locale
指定为参数。