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

Tenho a a palavra:

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

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

POR FAVOR!!!

Sempre verifique a documentação antes de postar.

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

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.

[quote=marcobiscaro2112]Sempre verifique a documentação antes de postar.

String modificada = teste.substring(0, teste.length() - 1);[/quote]

Muito obrigado velhão!!!

:smiley:

[quote=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.
[/quote]

Interessantíssimo… tem um exemplo??

[quote=ctdaa]Mas e se o último caracter não for vírgula???
[/quote]
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).

[quote=JWell][quote=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.
[/quote]

Interessantíssimo… tem um exemplo??[/quote]
Você quer pegar até a última vírgula ou você quer remover o último caracter se este for uma vírgula?

Exatamente isso prezado amigo!!

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

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

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

MUITO OBRIGADO!!!
Grande abraço!!

[quote=JWell]

Interessantíssimo… tem um exemplo??[/quote]

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());