I have this code, to find the number of female artists, male artists, or bands -
import java.util.*;
public class FindGender {
public static void main(String[] args) {
// TODO code application logic here
ArrayList < String > artists = new ArrayList < > ();
int mnum = 0, fnum = 0, bnum = 0;
artists.add("Beyonce (f)");
artists.add("Drake (m)");
artists.add("Madonna (f)");
artists.add("Michael Jackson (m)");
artists.add("Porcupine Tree (b)");
artists.add("Opeth (b)");
artists.add("FallOut Boy (b)");
artists.add("Rick Ross {m}");
artists.add("Chris Brown (m)");
if (artists.contains("(b)")) bnum++;
if (artists.contains("(m)")) mnum++;
if (artists.contains("(f)")) fnum++;
System.out.println("The number of male artists is: " + mnum);
System.out.println("The number of female artists is: " + fnum);
System.out.println("The number of bands is: " + bnum);
}
}
But the output shows - run:
The number of male artists is: 0
The number of female artists is: 0
The number of bands is: 0
BUILD SUCCESSFUL (total time: 0 seconds)
Any help would be appreciated
Contains and containing a part of a String are different. In order to return true, it should match to the whole String.
This works
for (String item : artists) {
if (item.contains("(b)")) bnum++;
if (item.contains("(m)")) mnum++;
if (item.contains("(f)")) fnum++;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With