Necesito verificar si un "usuario" escribe la palabra "si". Déjame explicarte, tengo esto: texto de cadena;
Scanner read = new Scanner(System.in); System.out.println("type text"); text=read.nextLine(); System.out.println("the text is " +text);Necesito asegurarme de que lo que está escrito es la palabra "si".
Debe usar los métodos contains() o equals() deString API como se muestra a continuación:
if(text.contains("if ") || text.contains(" if") || text.contains(" if ")) { System.out.println(" Text contains if"); } El código anterior funciona incluso si la palabra if está al principio o al final del text de entrada.
Si está buscando la coincidencia de palabra completa, debe usar equals() como se muestra a continuación:
if(text.equals("if")) { System.out.println(" Text equals if"); }Debe comparar el valor del texto con el valor si usa equals() como este:
if(text.equals("if")){ //Do something }O una mejor solución segura nula sería:
if("if".equals(text)){} De esta manera, si el texto es nulo, su programa no se bloqueará. == a equals() por la solución nula segura.
Si está buscando una coincidencia exacta, debe usar:
"if".equals(text)No al revés, porque siempre se debe comparar una constante con una variable, no al revés. Tendrá: 1. legibilidad 2. seguridad (ya que esto nunca generará una NullPointerException, incluso si el texto es nulo)