En Java, tengo una cadena:
Jamaica
Me gustaría eliminar el primer carácter de la cadena y luego regresar amaica
¿Cómo haría esto?
Use la substring()
función con un argumento de 1
para obtener la subcadena desde la posición 1 ( después del primer carácter) hasta el final de la cadena (dejando el segundo argumento por defecto en toda la longitud de la cadena).
"Jamaica".substring(1);
fuente
removeFirst()
.Use
substring()
y proporcione el número de caracteres que desea recortar desde el frente.Respuesta: "amaica"
fuente
En Java, elimine el carácter principal solo si es un carácter determinado
Use el operador ternario de Java para verificar rápidamente si su personaje está allí antes de eliminarlo. Esto elimina el carácter principal solo si existe, si pasa una cadena en blanco, devuelve la cadena en blanco.
Huellas dactilares:
Java, elimine todas las instancias de un personaje en cualquier parte de una cadena:
Java, elimine la primera instancia de un personaje en cualquier parte de una cadena:
fuente
header = header.substring(header.startsWith("#") ? 1 : 0);
header = header.replaceFirst("^#","");
Puede usar el método de subcadena de la
String
clase que toma solo el índice inicial y devuelve la subcadena que comienza con el carácter en el índice especificado y se extiende hasta el final de la cadena.fuente
fuente
La clave para entender en Java es que las cadenas son inmutables, no puede cambiarlas. Por lo tanto, no tiene sentido hablar de 'eliminar un personaje de una cadena'. En su lugar, crea una NUEVA cadena con solo los caracteres que desea. Las otras publicaciones en esta pregunta le brindan una variedad de formas de hacerlo, pero es importante comprender que no cambian la cadena original de ninguna manera. Cualquier referencia que tenga a la cadena anterior continuará refiriéndose a la cadena anterior (a menos que las cambie para referirse a una cadena diferente) y no se verá afectada por la cadena recién creada.
Esto tiene una serie de implicaciones para el rendimiento. Cada vez que está 'modificando' una cadena, en realidad está creando una nueva cadena con toda la sobrecarga implícita (asignación de memoria y recolección de basura). Entonces, si desea realizar una serie de modificaciones en una cadena y solo se preocupa por el resultado final (las cadenas intermedias estarán muertas tan pronto como las 'modifique'), puede tener más sentido usar un StringBuilder o StringBuffer en su lugar.
fuente
puedes hacer así:
o en general:
fuente
El método substring () devuelve una nueva cadena que contiene una subsecuencia de caracteres actualmente contenidos en esta secuencia.
La subcadena comienza en el especificado
start
y se extiende al carácter enindex end - 1
.Tiene dos formas. El primero es
String substring(int FirstIndex)
String substring(int FirstIndex, int endIndex)
Ejemplo
fuente
Encontré una situación en la que tenía que eliminar no solo el primer personaje (si era un
#
, sino el primer conjunto de personajes).String myString = ###Hello World
podría ser el punto de partida, pero solo me gustaría mantener elHello World
. Esto podría hacerse de la siguiente manera.Para el caso de OP, reemplace
while
conif
y funciona también.fuente
Otra solución, puede resolver su problema usando
replaceAll
algunas expresiones regulares^.{1}
( demostración de expresiones regulares ), por ejemplo:fuente
Mi versión de eliminar caracteres principales, uno o múltiples. Por ejemplo, String str1 = "01234", al eliminar el '0' inicial, el resultado será "1234". Para un String str2 = "000123" el resultado será nuevamente "123". Y para String str3 = "000" el resultado será una cadena vacía: "". Dicha funcionalidad suele ser útil al convertir cadenas numéricas en números. La ventaja de esta solución en comparación con regex (replaceAll (...)) es que esta es mucho más rápida. Esto es importante al procesar una gran cantidad de cadenas.
fuente