Java – Remover tags HTML de uma String (How to remove HTML from String)

html to text

A classe ParserDelegator junto com a interface HTMLEditorKit.ParserCallback do pacote ‘javax.swing.text.html’ permite o reajuste de um texto em HTML para um texto comum, ajustando todas as tags de acentuação e retirando todas as demais tags. Vamos criar uma classe que será responsável por isso, veja abaixo:

public class HtmlToText extends HTMLEditorKit.ParserCallback {

    private StringBuilder s;

    public HtmlToText() {
    }

public String parse(String texto) throws Exception {
byte[] dados = texto.getBytes();
ByteArrayInputStream bais = new ByteArrayInputStream(dados);
Reader reader = new InputStreamReader(bais);
return parse(reader);
}

    public String parse(Reader in) throws IOException {
        s = new StringBuilder();
        ParserDelegator delegator = new ParserDelegator();
        delegator.parse(in, this, Boolean.TRUE);
        return getText();
    }

    @Override
    public void handleText(char[] text, int pos) {
        s.append(text);
        s.append("n");
    }

    public String getText() {
        return s.toString();
    }
}

Para utilizarmos segue o exemplo:

Continue reading

Java – Criptografia MD5

Sobre a Criptografia MD5

“O MD5 (Message-Digest algorithm 5) é um algoritmo de hash de 128 bits unidirecional desenvolvido pela RSA Data Security, Inc., descrito na RFC 1321, e muito utilizado por softwares com protocolo ponto-a-ponto (P2P, ou Peer-to-Peer, em inglês) na verificação de integridade de arquivos e logins.
Foi desenvolvido em 1991 por Ronald Rivest para suceder ao MD4 que tinha alguns problemas de segurança. Por ser um algoritmo unidirecional, uma hash md5 não pode ser transformada novamente no texto que lhe deu origem. O método de verificação é, então, feito pela comparação das duas hash (uma da mensagem original confiável e outra da mensagem recebida). O MD5 também é usado para verificar a integridade de um arquivo através, por exemplo, do programa md5sum, que cria a hash de um arquivo. Isto pode-se tornar muito útil para downloads de arquivos grandes, para programas P2P que constroem o arquivo através de pedaços e estão sujeitos a corrupção dos mesmos. Como autenticação de login é utilizada em vários sistemas operacionais unix e em muitos sites com autentificação.
Em 2008, Ronald Rivest e outros, publicaram uma nova versão do algoritmo o MD6 com hash de tamanhos 224, 256, 384 ou 512 bytes. O algoritmo MD6 iria participar do concurso para ser o novo algoritmo SHA-3, porém logo depois removeu-o do concurso por considerá-lo muito lento, anunciando que os computadores de hoje são muito lentos para usar o MD6.” (Wikipidia – 2012)
Agora vamos ver como seria sua utilização na linguagem Java.
Continue reading

Java – Usando o SimpleDateFormat

Acredito que varias pessoas já tiveram problemas com o objeto Date, ou ajustar uma String de data com formato americano por exemplo.

O SimpleDateFormat é uma Classe bem simples de ser utilizada e totalmente útil para esse assunto. Com o SimpleDateFormat você pode definir seus próprios padrões de data, por exemplo, dd/mm/aaaa, dd/mm/aaaa, aaaa-mm-dd, e assim por diante. Os padrões de letras são definidas na imagem abaixo (todos os outros caracteres de ‘A’ a ‘Z’ e de ‘a’ a ‘z’ são reservados):

Tabela SimpleDateFormat

Abaixo  vamos mostrar um exemplo bem simples da utilização dessa Classe.
Continue reading

Como configurar o RoboCode no Netbeans

O que é o RoboCode?

Robocode é um jogo de programação. Ele pode ser usado para ensinar ouaprender a programação em Java ou. NET. Ela pode servir como uma plataformapara explorar AI e técnicas de aprendizagem de máquina. Ou pode ser um hobby,competitiva viciante que consome todo o seu tempo e ciclos de CPU. (http://robowiki.net/wiki/Main_Page)

Download e outras informações: http://robocode.sourceforge.net/

Configurando para o Netbeans

Primeiramente vá em Tools > Libraries…
Continue reading

Linux – Java no navegador – Plugin Java para Chrome e Firefox

A plugin is needed to display this content

Plugin is needed

Depois de muito tempo tentando rodar o plugin do java no meu navegador consegui resolver o problema.

Primeiramente se você não tiver o java baixe e instale o Java-JRE segue o link:
http://www.java.com/pt_BR/download/manual.jsp

Depois de instalado faça os seguintes procedimentos:
Continue reading

Java – Persistência com XML

Uma maneira bem simples de trabalhar com XML em java.
Esta maneira utiliza a biblioteca javax.xml.bind.

Este modo de trabalho com XML é simples pois ele trabalha com sua estrutura de objetos usando annotations,
você define toda sua estrutura de xml de acordo com seus objetos.

Exemplo:

Objeto A{
List B b;
}

Objeto B{
String nome;
String telefone;
}

Main{
a = novo A;
a.add(novo B(teste1,1111111111));
a.add(novo B(teste2,1111111111));
gravarEmXML(a);
}

XML:

< a >
 < b >
 < nome > teste1 < / nome >
    < telefone > 1111111111 < / telefone >
    < / b >
 < b >
    < nome > teste2 < / nome >
    < telefone > 1111111111 < / telefone >
 < / b >
< / a >

Simples não? tendo o XML também pode-se fazer o inverso:

Main{
a = pegarXML();
//seu objeto A já vai estar com os dados teste1 e teste2 conforme você gravou.
}

Porem você deve usar as tag’s annotations em seus objetos como no exemplo abaixo seguindo o mesmo raciocínio:

Continue reading

Listar dispositivos removíveis em Java

Este exemplo lista todos os dispositivos USB no windows, caso o SO for linux irá listar todos os dispositivos montados em /media/;

        Log("Buscando por dispositivos");//gravação de log

        File[] roots = null;//cria um vetor de file aonde ficara os dispositivos
        
        FileSystemView fs = FileSystemView.getFileSystemView();
        
        //verifica se o so eh windows
        if (System.getProperties().getProperty("os.name").toLowerCase().contains("windows")) {
            
            roots = File.listRoots();//lista os diretorios raiz
            
            for (File file : roots) {//percorre o vetor roots
                String descricao = fs.getSystemTypeDescription(file);//pega a descrição dos diretorios
                if (descricao != null) {//se for diferente de nulo
                    if (descricao.endsWith("removível")) {//verifica se é um disco removivel
                        System.out.println(file.getAbsolutePath());//mostra dispositivo
                    }
                }
            }       //verifica se eh linux
        } else if (System.getProperties().getProperty("os.name").toLowerCase().contains("linux")) {
            
            roots = fs.getFiles(new File("/media/"), true);//pega todos os diretorios montados em /media/
            
            for (File file : roots) {//percorre o vetor roots
                        System.out.println(file.getAbsolutePath());//mostra dispositivo
            }
        }