Alteração dentro de String

9 respostas
D

Vamos criar um aplicativo para criptografar uma frase. O aplicativo vai possuir duas caixas de textos. Na primeira caixa de texto vai conter a caixa frase a ser criptografada, na segunda caixa fica a frase já criptografa após pressionar o butão que criptografa a frase informada pelo usuário.

Exemplo:

O vermelho não é amarelo (Frase Normal)
O vmhreleo não éarmlaeo (Frase Criptografada)

Obs.:
Caso a palavra da frase seja constituída por 1 ou 3 letras não munda nada, apenas repetiremos a palavra.
Sempre temos que manter a primeira e a última letra das palavras e embaralhar(misturar) as outras que ficam entre a primeira e a última.

Aqui vai o código que criei, contudo o método “reverse()” inverte toda a frase e o pedido é o interior da palavra e ainda mantendo a inicial e a última.
Código:

private void CriptografarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
    String txt = TextoNormal.getText();
    StringBuffer txt1 = new StringBuffer(txt).reverse();
    TextoCript.setText(txt1.toString());
}

9 Respostas

RobsonFagundes

eee ??

phpinheiro

Bom, se vc quer tratar nas palavras separadamente, pode usar o split do jdk 1.4:

String [] palavrasSeparadas = frase.split(" "); //aqui ele separa as palavras pela ocorrência do espaço

e para cada palavra no vetor vc aplica as suas regras de criptografia.

Rodrigo_Pereira_Vale

Cara, é um trabalho universitário certo?

Da uma pensadinha a mais… é simples cara…

Se mesmo assim não funfar ai, da umalô que a gente manda a solução…

abração

pimenta

Rodrigo, tem toda cara de trabalho de faculdade.

dejota008, vamos combinar da seguinte forma:
Você posta o código que você tem aí e a galera colabora te dando dicas e/ou soluções.

Bem melhor.

Abraços,

D

pimenta:
Rodrigo, tem toda cara de trabalho de faculdade.

dejota008, vamos combinar da seguinte forma:
Você posta o código que você tem aí e a galera colabora te dando dicas e/ou soluções.

Bem melhor.

Abraços,

Aí vai o bicho…

public class Crypt extends javax.swing.JFrame {

    /** Creates new form Crypt */
    public Crypt() {
        initComponents();
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jScrollPane1 = new javax.swing.JScrollPane();
        TextoNormal = new javax.swing.JTextArea();
        jScrollPane2 = new javax.swing.JScrollPane();
        TextoCript = new javax.swing.JTextArea();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        Criptografar = new javax.swing.JButton();
        Limpar = new javax.swing.JButton();
        jMenuBar1 = new javax.swing.JMenuBar();
        jMenu1 = new javax.swing.JMenu();
        Exit = new javax.swing.JMenuItem();
        jMenu2 = new javax.swing.JMenu();
        About = new javax.swing.JMenuItem();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder());

        TextoNormal.setColumns(20);
        TextoNormal.setEditable(false);
        TextoNormal.setRows(5);
        TextoNormal.setText("Estou fazendo Linguagem de Programação Java\nno Centro de Treinamento TecNogueira.");
        jScrollPane1.setViewportView(TextoNormal);

        TextoCript.setColumns(20);
        TextoCript.setEditable(false);
        TextoCript.setRows(5);
        jScrollPane2.setViewportView(TextoCript);

        jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel1.setText("Frase a ser Criptografada:");

        jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel2.setText("Frase Criptografada:");

        Criptografar.setText("Crypt");
        Criptografar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                CriptografarActionPerformed(evt);
            }
        });

        Limpar.setText("Descript");
        Limpar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                LimparActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGap(125, 125, 125)
                        .addComponent(jLabel1))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 378, Short.MAX_VALUE))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGap(138, 138, 138)
                        .addComponent(jLabel2))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 378, Short.MAX_VALUE)))
                .addContainerGap())
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                .addContainerGap(227, Short.MAX_VALUE)
                .addComponent(Criptografar, javax.swing.GroupLayout.PREFERRED_SIZE, 67, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(Limpar)
                .addGap(23, 23, 23))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jLabel2)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(Limpar)
                    .addComponent(Criptografar))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jMenu1.setText("Arquivo");

        Exit.setText("Sair");
        Exit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ExitActionPerformed(evt);
            }
        });
        jMenu1.add(Exit);

        jMenuBar1.add(jMenu1);

        jMenu2.setText("Help");

        About.setText("About");
        About.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                AboutActionPerformed(evt);
            }
        });
        jMenu2.add(About);

        jMenuBar1.add(jMenu2);

        setJMenuBar(jMenuBar1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>

private void ExitActionPerformed(java.awt.event.ActionEvent evt) {                                     
// TODO add your handling code here:
    System.exit(0);
}                                    

private void AboutActionPerformed(java.awt.event.ActionEvent evt) {                                           
// TODO add your handling code here:
    new About().show();
}

private void CriptografarActionPerformed(java.awt.event.ActionEvent evt) {                                             
// TODO add your handling code here:
    String txt = TextoNormal.getText();
    StringBuffer txt1 = new StringBuffer(txt).reverse();
    TextoCript.setText(txt1.toString());
}                                            

private void LimparActionPerformed(java.awt.event.ActionEvent evt) {                                       
// TODO add your handling code here:
    TextoCript.setText("");

}                                      

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Crypt().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify
    private javax.swing.JMenuItem About;
    private javax.swing.JButton Criptografar;
    private javax.swing.JMenuItem Exit;
    private javax.swing.JButton Limpar;
    private javax.swing.JTextArea TextoCript;
    private javax.swing.JTextArea TextoNormal;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenu jMenu2;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    // End of variables declaration

}
D

Rodrigo Pereira Valentim:
Cara, é um trabalho universitário certo?

Da uma pensadinha a mais… é simples cara…

Se mesmo assim não funfar ai, da umalô que a gente manda a solução…

abração

Rapaz, o pior que não…
É um curso que estou fazendo

D

phpinheiro:
Bom, se vc quer tratar nas palavras separadamente, pode usar o split do jdk 1.4:

String [] palavrasSeparadas = frase.split(" "); //aqui ele separa as palavras pela ocorrência do espaço

e para cada palavra no vetor vc aplica as suas regras de criptografia.

Interesante este seu exempo, pode me ampliá-lo mais ?
Tenho uma leve impressão que tenho que usar um for.
A respeito tentei usar um ArrayList, porém não consigo lançá-lo dentro de um “set.Text()”;
O que vc acha ?

phpinheiro

então…
este método split vai partir a sua frase em um vetor de strings, onde cada string vai ser uma palavra da frase.

Na verdade, acho que um foreach seria mais apropriado, devido ao fato de vc não saber quantas palavras tem no vetor.

Voce pode fazer um foreach, e em cada iteração do laço realizar a criptografia.

D

phpinheiro:
então…
este método split vai partir a sua frase em um vetor de strings, onde cada string vai ser uma palavra da frase.

Na verdade, acho que um foreach seria mais apropriado, devido ao fato de vc não saber quantas palavras tem no vetor.

Voce pode fazer um foreach, e em cada iteração do laço realizar a criptografia.

Caro perdoe a minha ignorância, pois sou novo no java, a respeito do foreach até entendi, porém como que eu faço essa
mistura, pois usando um List é difícil jogar ele na TextField, entende?

Criado 15 de dezembro de 2008
Ultima resposta 17 de dez. de 2008
Respostas 9
Participantes 5