Tengo una cadena (que es básicamente un nombre de archivo que sigue una convención de nomenclatura) abc.def.ghi
Me gustaría extraer la subcadena antes de la primera .
(es decir, un punto)
En java doc api, parece que no puedo encontrar un método en String que haga eso.
¿Me estoy perdiendo de algo? ¿Cómo hacerlo?
La respuesta aceptada es correcta pero no le dice cómo usarla. Así es como se usan las funciones indexOf y substring juntas.
fuente
Puedes simplemente dividir la cuerda ...
Tenga en cuenta que java.lang.String.split usa el valor de expresión regular del delimitador. Básicamente así ...
Por supuesto, esto se divide en varias líneas para la clarividencia. Podría escribirse como
fuente
Si su proyecto ya usa commons-lang , StringUtils proporciona un buen método para este propósito:
ver javadoc [2.6] [3.1]
fuente
o puedes probar algo como
"abc.def.ghi".substring(0,"abc.def.ghi".indexOf(c)-1);
fuente
def.hij.klm
? ¿Cómo funcionaría entonces tu código? (Su código solo funciona para este ejemplo; también podría escribir una función que regrese"abc"
, funcionaría igual de bien)¿Qué tal usar expresiones regulares?
Esto reemplaza todo, desde el primer punto hasta el final con "" (es decir, lo borra, dejándote con lo que quieres)
He aquí una prueba:
Salida:
fuente
En java.lang.String obtienes algunos métodos como indexOf (): que te devuelve el primer índice de un carácter / cadena. y lstIndexOf: que le devuelve el último índice de String / char
Desde Java Doc:
Devuelve el índice dentro de esta cadena de la primera aparición del carácter especificado.
fuente
Aquí hay un código que devuelve una subcadena desde a
String
hasta cualquiera de una lista dada de caracteres:fuente
Esto podría ayudar:
fuente