Substituir apenas o último caracter de uma String[RESOLVIDO]

10 respostas
J

Tenho a a palavra:

String teste = "teste, testando, testeando novamente,";

Preciso tirar a última virgula no final dessa String!!

POR FAVOR!!!

10 Respostas

M

Sempre verifique a documentação antes de postar.

String modificada = teste.substring(0, teste.length() - 1);

ctdaa

Mas e se o último caracter não for vírgula??? vai perder a última letra.
Deve dar para resolver com expressões regulares… mas para responder mais rápido: faça um split com delimitador vírgula e depois um apend das palavras encontradas delimitando com vírgula novamente.

J

marcobiscaro2112:
Sempre verifique a documentação antes de postar.

String modificada = teste.substring(0, teste.length() - 1);

Muito obrigado velhão!!!

:smiley:

J

ctdaa:
Mas e se o último caracter não for vírgula??? vai perder a última letra.
Deve dar para resolver com expressões regulares… mas para responder mais rápido: faça um split com delimitador vírgula e depois um apend das palavras encontradas delimitando com vírgula novamente.

Interessantíssimo… tem um exemplo??

M

ctdaa:
Mas e se o último caracter não for vírgula???

Tem isso. Talvez alguma verificação extra seja necessária (existem várias formas como os métodos split() indexOf(), lastIndexOf() e substring() de String ou a API de regex - mais complexo porém muito mais potente).

M

JWell:
ctdaa:
Mas e se o último caracter não for vírgula??? vai perder a última letra.
Deve dar para resolver com expressões regulares… mas para responder mais rápido: faça um split com delimitador vírgula e depois um apend das palavras encontradas delimitando com vírgula novamente.

Interessantíssimo… tem um exemplo??


Você quer pegar até a última vírgula ou você quer remover o último caracter se este for uma vírgula?

J

Exatamente isso prezado amigo!!

M
if (teste.charAt(teste.length() - 1) == ',') { // verifica se o último caractere é uma vírgula
    // aqui você coloca o trecho acima
}
J

marcobiscaro2112:
if (teste.charAt(teste.length() - 1) == ',') { // verifica se o último caractere é uma vírgula // aqui você coloca o trecho acima }

Muitooo bom mesmo… abriu um “lek” pra mim!!

MUITO OBRIGADO!!!
Grande abraço!!

ctdaa

JWell:

Interessantíssimo… tem um exemplo??

Fiquei devendo os exemplos:

//  teste retira ultimo caracter se for virgula:
        StringBuilder sb = new StringBuilder("");
        String teste = "teste, testando, testeando novamente,"; 
        
        // exemplo 1: regex com replace 
        System.out.println("com regex->" + teste.replaceFirst("(,$)", ""));
        
        // exemplo 2: regex com split        
        System.out.println("com split->" + teste.split(",$")[0]);
        
        // exemplo 3: split mais append
        String[] result = teste.split(",");
        int x=0;
        sb = new StringBuilder(result[x]);
        while (x < result.length ) {  
          sb.append(", " + result[x++]);
        }
        System.out.println("com split e append->" + sb.toString());
        
        // exemplo 4: tokenizer mais append
        StringTokenizer st = new StringTokenizer(teste, ",", false);
        sb = new StringBuilder(st.nextToken());
        while (st.hasMoreTokens()) {
          sb.append(", " + st.nextToken());
        }
        System.out.println("com Tokenizer->" + sb.toString());
Criado 11 de janeiro de 2010
Ultima resposta 12 de jan. de 2010
Respostas 10
Participantes 3