En Java, hay una manera de verificar la condición:
"¿Aparece este único carácter en la cadena x"
sin usar un bucle?
java
validation
string
character
barfoon
fuente
fuente
Respuestas:
Puedes usar
string.indexOf('a')
.Si el personaje
a
está presente enstring
:fuente
indexOf()
utiliza el bucle interno. Ninguna de las respuestas da la solución correcta y si alguien se atreve a hacer una nueva pregunta, la gente la declaraDuplicate
. Realmente decepcionante; (String.contains()
que comprueba si la cadena contiene una secuencia específica de valores de caracteresString.indexOf()
que devuelve el índice dentro de la cadena de la primera aparición del carácter o subcadena especificado (hay 4 variaciones de este método)fuente
String.contains(""+c)
No estoy seguro de lo que el cartel original está preguntando exactamente. Desde indexOf (...) y contiene (...) ambos probablemente usan bucles internamente, ¿tal vez está buscando ver si esto es posible sin un bucle? Se me ocurren dos maneras, por supuesto, una sería la recurrencia:
El otro es mucho menos elegante, pero completo ...:
El número de líneas crece a medida que necesita soportar cadenas cada vez más largas, por supuesto. Pero no hay bucles / recursiones en absoluto. Incluso puede eliminar la verificación de longitud si le preocupa que esa longitud () use un bucle.
fuente
fuente
Puedes usar 2 métodos de la
String
clase.String.contains()
que comprueba si la cadena contiene una secuencia específica de valores de caracteresString.indexOf()
que devuelve el índice dentro de la cadena de la primera aparición del carácter o subcadena especificado o devuelve -1 si no se encuentra el carácter (hay 4 variaciones de este método)Método 1:
Método 2:
Enlaces por: Zach Scrivena
fuente
Para verificar si algo no existe en una cadena, al menos debe mirar cada carácter en una cadena. Entonces, incluso si no usa explícitamente un bucle, tendrá la misma eficiencia. Dicho esto, puedes intentar usar str.contains ("" + char).
fuente
Si necesita verificar la misma cadena con frecuencia, puede calcular las ocurrencias de caracteres por adelantado. Esta es una implementación que utiliza una matriz de bits contenida en una matriz larga:
fuente
Sí, usando el método indexOf () en la clase de cadena. Consulte la documentación de la API para este método
fuente
fuente
for
no es un bucle ahora?Salida
fuente
fuente
}
fuente
¿Es el siguiente lo que estabas buscando?
fuente
&& string.lastIndexOf(character) != index
No podrá verificar si char aparece en absoluto en alguna cadena sin al menos pasar por la cadena una vez que usa loop / recursión (los métodos integrados como indexOf también usan un ciclo)
Si el no. muchas veces, si un carácter está en la cadena x, es mucho más alto que la longitud de la cadena de lo que recomendaría usar una estructura de datos Set , ya que sería más eficiente que simplemente usar
indexOf
Usando set podrá verificar si el carácter existe en una cadena en tiempo constante O (1) pero también usará memoria adicional (la complejidad del espacio será O (n)).
fuente
Usé el método string.includes () para esto que devuelve verdadero o falso si se encuentra la cadena o el carácter. Consulte la documentación a continuación.
https://www.w3schools.com/jsref/jsref_includes.asp
fuente
// esto es solo el principal ... puedes usar el lector o escáner de memoria intermedia wither
fuente