Eu tenho uma string (que é basicamente um nome de arquivo seguindo uma convenção de nomenclatura) abc.def.ghi
Eu gostaria de extrair a substring antes da primeira .
(ou seja, um ponto)
Em java doc api, não consigo encontrar um método em String que faça isso.
Estou esquecendo de algo? Como fazer isso?
A resposta aceita está correta, mas não informa como usá-la. É assim que você usa as funções indexOf e substring juntas.
fonte
Você pode apenas dividir a corda ..
Observe que java.lang.String.split usa o valor da expressão regular do delimitador. Basicamente assim ...
Claro, isso é dividido em várias linhas para claridade. Pode ser escrito como
fonte
Se o seu projeto já usa commons-lang , StringUtils fornece um bom método para essa finalidade:
veja javadoc [2.6] [3.1]
fonte
ou você pode tentar algo como
"abc.def.ghi".substring(0,"abc.def.ghi".indexOf(c)-1);
fonte
def.hij.klm
? Como o seu código funcionaria então? (Seu código só funciona para este exemplo - você também pode escrever uma função que retorne"abc"
- funcionaria da mesma forma)Que tal usar regex?
Isso substitui tudo, do primeiro ponto ao final por "" (ou seja, ele o limpa, deixando você com o que deseja)
Aqui está um teste:
Resultado:
fonte
Em java.lang.String, você obtém alguns métodos como indexOf (): que retorna o primeiro índice de um char / string. e lstIndexOf: que retorna o último índice de String / char
Do Java Doc:
Retorna o índice dentro desta string da primeira ocorrência do caractere especificado.
fonte
Aqui está o código que retorna uma substring de a
String
até qualquer um de uma determinada lista de caracteres:fonte
Isso pode ajudar:
fonte