Innanzitutto il contenuto delle stringhe (e degli oggetti in generale) NON si confronta per uguaglianza con == .
Il == si basa solo sulla "identità" degli oggetti (il valore dei reference) e salvo rarissimi casi, non è mai quello che serve veramente.
Il contenuto di stringhe/oggetti si confronta per uguaglianza con il metodo equals(Object)
Sarà che non capisco nulla del poker .... ma non ho capito molto.
Stando a https://it.wikipedia.org/wiki/Punti_del_poker ci sono effettivamente i casi di "Coppia" e "Doppia coppia". Vuoi distinguere i due casi? E in generale poter determinare tutti i casi citati in quella pagina (es. Tris, Scala, ecc..)?