Para acessar caracteres individuais de uma String em Java, temos String.charAt(2)
. Existe alguma função embutida para remover um caractere individual de uma String em java?
Algo assim:
if(String.charAt(1) == String.charAt(2){
//I want to remove the individual character at index 2.
}
couple
desubstring
eindexOf
. Mas isso criará um novo objeto de string.Respostas:
Você também pode usar a
StringBuilder
classe que é mutável.Ele tem o método
deleteCharAt()
, junto com muitos outros métodos de mutação.Apenas exclua os caracteres que você precisa excluir e obtenha o resultado da seguinte maneira:
Isso evita a criação de objetos de cadeia desnecessários.
fonte
String numbers = "0123456789"; char c = '2'; numbers = numbers.replace(c, Character.MIN_VALUE);
Quero substituir o caractere '' (vazio)Uma possibilidade:
Observe que o resultado é uma nova String (bem como dois objetos String intermediários), porque Strings em Java são imutáveis.
fonte
Você pode usar o método Java String chamado replace, que substituirá todos os caracteres correspondentes ao primeiro parâmetro pelo segundo parâmetro:
fonte
Não, porque Strings em Java são imutáveis. Você precisará criar uma nova string removendo o caractere que não deseja.
Para substituir um único caractere
c
na posição de índiceidx
na stringstr
, faça algo assim e lembre-se de que uma nova string será criada:fonte
deleteCharAt ()
substituir()
Caracteres[]
fonte
Considere o seguinte código:
fonte
Você também pode usar a (enorme) máquina regexp.
"(?s)" -
diz ao regexp para lidar com novas linhas como caracteres normais (apenas no caso)."(.{2})" -
grupo $ 1 coletando exatamente 2 caracteres"." -
qualquer caractere no índice 2 (a ser espremido)."(.*)" -
grupo $ 2, que coleta o restante da inputString."$1$2" -
colocando o grupo $ 1 e o grupo $ 2 juntos.fonte
Para modificar Strings, leia sobre StringBuilder porque é mutável, exceto String imutável. Operações diferentes podem ser encontradas aqui https://docs.oracle.com/javase/tutorial/java/data/buffers.html . O trecho de código abaixo cria um StringBuilder e, em seguida, anexa a String especificada e exclui o primeiro caractere da String e depois o converte novamente de StringBuilder em uma String.
fonte
Use a função replaceFirst da classe String. Existem tantas variantes da função de substituição que você pode usar.
fonte
Se você precisar de algum controle lógico sobre a remoção de caracteres, use este
Se você não precisar desse controle, poderá usar o que Oscar ou Bhesh mencionaram. Eles estão no local.
fonte
Pelo método de substituição usando, podemos alterar um único caractere da string.
fonte
A maneira mais fácil de remover um caractere da string
fonte
fonte
Na maioria dos casos de uso, usar
StringBuilder
ousubstring
é uma boa abordagem (como já respondido). No entanto, para código crítico de desempenho, essa pode ser uma boa alternativa.fonte
* Você pode excluir o valor da string usando o StringBuilder e deletecharAt.
fonte
Sim. Temos a função integrada para remover um caractere individual de uma string em java, ou seja, deleteCharAt
Por exemplo,
Resultado
fonte
Se você deseja remover um caractere de um String str em um índice int específico :
fonte
fonte
fonte
Quando tenho esse tipo de pergunta, sempre pergunto: "o que os Java Gurus fazem?" :)
E eu responderia que, nesse caso, olhando para a implementação de
String.trim()
.Aqui está uma extrapolação dessa implementação que permite que mais caracteres de corte sejam usados.
No entanto, observe que o corte original remove todos os caracteres que são
<= ' '
, portanto, você pode combinar isso com o original para obter o resultado desejado.fonte
fonte
Para remover um único caractere da seqüência especificada, encontre meu método, espero que seja útil. Eu usei str.replaceAll para remover a string, mas há muitas maneiras de remover um caractere de uma determinada string, mas eu prefiro o método replaceeall.
Código para remover char:
Imagem do console:
encontre a imagem anexada do console,
Obrigado por perguntar. :)
fonte
Acabei de implementar essa classe de utilitário que remove um caractere ou um grupo de caracteres de uma String . Eu acho que é rápido porque não usa Regexp. Espero que ajude alguém!
Esta é a saída:
fonte
Por exemplo, se você deseja calcular quantos a existem na String, é possível fazer o seguinte:
fonte