Como remover tudo que estiver entre /* ...... */ de uma string

Pessoal alguém tem alguma idéia de como fazer um método que passada uma string como parâmetro ele remova os comentários dessa string, por exemplo: String str = new String(" rssrs /* comentários…*/ srsrs");

String str2 = removeComentario(str); o conteúdo de str2 seria: “rsrsrsrsrrsr” , ou seja , quero que o método remova tudo que esteja entre /* e */ , será que alguém tem uma idéia ou terei que fazer isso no braço ? estou tendo dificuldades em fazer isso no braço…valeu pessoal, até mais…

Se você sabe que o comentário será fechado direitinho, você pode tentar uma expressão regular.

Você vai ter que criar um método para resolver este seu problema
na classe String tem um método chamado indexOf() onde você passa uma determinado pedaço da String que você quer saber a posicao e ele te retorna um inteiro com a posicao do caracter.

Ou seja, com a informação do inicio e do fim você pode remover este texto com o subtring() que é outro método da classe String.

a expressão regular que casa com o que vc quer é a

/\*.*\*/

entretanto isso pode não funcionar se vc tiver mais de uma linha ou mais de um comentario na string, vai testando ai.

// Fonte: http://ostermiller.org/findcomment.html
class RemoverComentarios {
    public static void main(String[] args) {
        String linha = "Esta linha tem /* um come * / ntario */ que termina nesta linha mesmo";
        String resultado = linha.replaceAll ("(?:/\*(?:[^*]|(?:\*+[^*/]))*\*+/)|(?://.*)","");
        System.out.println (resultado);
    }
}

Talves o split ta,bém ajude em algo, na verdade, não terá apenas uma maneira de se fazer isso né, vai da sua imaginação um pouco também :slight_smile:

O Stephen Ostermiller deve ter queimado muito fósforo para achar a tal expressão regular. Eu, se tivesse um problema semelhante, usaria a classe StreamTokenizer, que limpa comentários pelo método tradicional.

Pessoal muito obrigado mesmo, sou novo aqui no fórun e é minha primeira mensagem, valeu pela ajuda…vou tentar aqui e qualquer coisa volto de novo…até mais…

Pessoa voltei, problema resolvido através da classe java.io.StreamTokenizer , valeu mesmo pessoal, gostei bastante do fórum… public static String removeComentario(String texto) { StreamTokenizer saida = new StreamTokenizer(new StringReader(texto)); saida.slashStarComments(true); //reconhece comentários seguidos de // saida.slashSlashComments(true); //reconhece comentários entre /* */ return saida.toString(); }