Caleigh O'Brien:
Aqui está um código que funciona, mas parece deselegante. Qual é a melhor maneira de procurar qualquer ocorrência dessas cordas dentro de outra cadeia?
String AndyDaltonInjury = "broken right thumb";
if (AndyDaltonInjury.toLowerCase().contains("broken") &&
(AndyDaltonInjury.toLowerCase().contains("knee") ||
AndyDaltonInjury.toLowerCase().contains("leg") ||
AndyDaltonInjury.toLowerCase().contains("ankle") ||
AndyDaltonInjury.toLowerCase().contains("thumb") ||
AndyDaltonInjury.toLowerCase().contains("wrist")))
{
System.out.println("Marvin sends in the backup quarterback.");
}
Nikolas:
Utilizar a Set
recolha e o seu método Set::contains
insde fluindo a matriz dividida com o espaço ( " "
delimitador):
Set<String> set = new HashSet<>(Arrays.asList("knee", "leg", "ankle", "thumb", "wrist"));
String lower = "broken right thumb".toLowerCase();
String split[] = lower.split(" ");
if (lower.contains("broken") && Arrays.stream(split).anyMatch(set::contains)) {
System.out.println("Marvin sends in the backup quarterback.");
}
Além disso, eu recomendo que você use nomes de variáveis inferior encaixotados.