Em Java, eu tenho uma String:
Jamaica
Gostaria de remover o primeiro caractere da string e retornar amaica
Como eu faria isso?
Use a substring()
função com um argumento de 1
para obter a substring da posição 1 ( após o primeiro caractere) até o final da string (deixando o segundo argumento fora do padrão para o comprimento total da string).
"Jamaica".substring(1);
fonte
removeFirst()
.Use
substring()
e forneça o número de caracteres que deseja aparar da frente.Resposta: "amaica"
fonte
Em Java, remova o caractere inicial apenas se for um determinado caractere
Use o operador ternário Java para verificar rapidamente se seu personagem está lá antes de removê-lo. Isso remove o caractere à esquerda somente se ele existir, se for passado uma string em branco, retorne a string em branco.
Impressões:
Java, remova todas as instâncias de um caractere em qualquer lugar de uma sequência:
Java, remova a primeira instância de um caractere em qualquer lugar de uma sequência:
fonte
header = header.substring(header.startsWith("#") ? 1 : 0);
header = header.replaceFirst("^#","");
Você pode usar o método de substring da
String
classe que pega apenas o índice inicial e retorna a substring que começa com o caractere no índice especificado e se estende até o final da string.fonte
fonte
O principal a entender em Java é que as Strings são imutáveis - você não pode alterá-las. Portanto, não faz sentido falar em 'remover um caractere de uma string'. Em vez disso, você cria uma NOVA string com apenas os caracteres que deseja. As outras postagens nesta pergunta oferecem várias maneiras de fazer isso, mas é importante entender que elas não alteram a string original de forma alguma. Todas as referências que você possui à cadeia antiga continuarão a se referir à cadeia antiga (a menos que você as altere para se referir a uma cadeia diferente) e não serão afetadas pela cadeia recém-criada.
Isso tem várias implicações para o desempenho. Cada vez que você está 'modificando' uma string, na verdade você está criando uma nova string com toda a sobrecarga implícita (alocação de memória e coleta de lixo). Portanto, se você desejar fazer uma série de modificações em uma string e se importar apenas com o resultado final (as strings intermediárias estarão inoperantes assim que você as "modificar"), poderá fazer mais sentido usar um StringBuilder ou StringBuffer.
fonte
você pode fazer assim:
ou em geral:
fonte
O método substring () retorna uma nova String que contém uma subsequência de caracteres atualmente contidos nessa sequência.
A substring começa no especificado
start
e se estende ao caractere emindex end - 1
.Tem duas formas. O primeiro é
String substring(int FirstIndex)
String substring(int FirstIndex, int endIndex)
Exemplo
fonte
Me deparei com uma situação em que eu tinha que remover não apenas o primeiro caractere (se fosse um
#
, mas o primeiro conjunto de caracteres).String myString = ###Hello World
poderia ser o ponto de partida, mas eu só gostaria de manter oHello World
. isso pode ser feito da seguinte maneira.No caso do OP, substitua
while
porif
e ele também funciona.fonte
Outra solução, você pode resolver seu problema usando
replaceAll
algum regex^.{1}
( regex demo ), por exemplo:fonte
Minha versão da remoção de caracteres principais, um ou vários. Por exemplo, String str1 = "01234", ao remover o '0' inicial, o resultado será "1234". Para uma string str2 = "000123", o resultado será novamente "123". E para String str3 = "000" o resultado será string vazia: "". Essa funcionalidade geralmente é útil ao converter seqüências numéricas em números.A vantagem dessa solução em comparação com o regex (replaceAll (...)) é que este é muito mais rápido. Isso é importante ao processar um grande número de Strings.
fonte