Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it L'avatar di power83
    Registrato dal
    Oct 2002
    Messaggi
    684

    sostituzione carattere in stringa

    Salve a tutti...
    ho scritto questo codice:
    codice:
    for (int i = 0; i < x; i++)
            {
                String c1 = Character.toString(text[i]); 
                String chi = Testo.getText();
                
                for (int n = 0; n < x; n ++) 
                {
                    
                    String c2 = Character.toString(chi.charAt(n));
    		chi.replace (Character.toString(chi.charAt(n)),".");
    		System.out.println(chi);
    				
                        if(c1.equals(c2))
                        {
                        	for (int p = 1; p < righe; p++)
                            {
                            	if (!(matrice1[p][n].getText().equals("")))
                            	{
                            		matrice2[ind] = new JTextField();
                                		matrice2[ind].setText(matrice1[p][n].getText());
                                		matrice2[ind].setEditable(false);
                                		tabella1.add(matrice2[ind]);
    				}
                                	
    				ind ++;
                            
    			}
                        }    
                }
            }
    in pratica prendo le colonne di una matrice in corrispondeza della lettera presente in una stringa in ordie alfabetico, una volta che ho utilizzato la lettera vorrei sostituirla con il punto es.: ciao diventerà .... in 4 passaggi
    ciao -> .iao
    .iao -> ..ao
    ecc

    Il problema è che non mi sostituisce il carattere!!
    Oppa

  2. #2
    Utente di HTML.it L'avatar di power83
    Registrato dal
    Oct 2002
    Messaggi
    684

    Re: sostituzione carattere in stringa

    Ho spostato la definizione di "chi" ma non cambia! a video stampa sempre il valore completo di "chi".

    codice:
    String chi = Testo.getText();            
    
    for (int i = 0; i < x; i++)
            {
                String c1 = Character.toString(text[i]); 
    
                for (int n = 0; n < x; n ++) 
                {
                    
                    String c2 = Character.toString(chi.charAt(n));
    		chi.replace (Character.toString(chi.charAt(n)),".");
    		System.out.println(chi);
    				
                        if(c1.equals(c2))
                        {
                        	for (int p = 1; p < righe; p++)
                            {
                            	if (!(matrice1[p][n].getText().equals("")))
                            	{
                            		matrice2[ind] = new JTextField();
                                		matrice2[ind].setText(matrice1[p][n].getText());
                                		matrice2[ind].setEditable(false);
                                		tabella1.add(matrice2[ind]);
    				}
                                	
    				ind ++;
                            
    			}
                        }    
                }
            }
    aiuto!!!!
    Oppa

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    724
    cos'è x. postami il popolamento della matrice che provo ad eseguirlo

  4. #4
    Utente di HTML.it L'avatar di power83
    Registrato dal
    Oct 2002
    Messaggi
    684
    hai un pvt!!! grazie mille
    Oppa

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,311

    Moderazione

    Originariamente inviato da power83
    hai un pvt!!! grazie mille
    Il codice si pubblica sul forum, non si comunica in privata, altrimenti la discussione non è utile a nessuno e nessun'altro può esserti d'aiuto.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    724
    posta direttamente qui tanto saranno poche righe, quelle che riguardano il pop delle matrici e le definizioni delle variabili

  7. #7
    Utente di HTML.it L'avatar di power83
    Registrato dal
    Oct 2002
    Messaggi
    684

    Re: Moderazione

    Originariamente inviato da alka
    Il codice si pubblica sul forum, non si comunica in privata, altrimenti la discussione non è utile a nessuno e nessun'altro può esserti d'aiuto.
    Era solo per non riempire il post di codice!
    codice:
            String Testo = TestoOriginale.getText();
            String TestoOriginale1 = Testo.replace(" ", "");
            
            int x = Chiave.getText().length();         
            int y = TestoOriginale1.length();
            int Nchar = 0;
            int ind =0;
            int righe = 0;
            int k = x + y;
            
            String totale = Chiave.getText() + TestoOriginale1;
            
            for (int NumeroRighe = 0 ; NumeroRighe < y ; NumeroRighe++)
            {
                int controllo = NumeroRighe * x;
                if (controllo >= y)
                {
                    righe = NumeroRighe+1;
                    break;
                }
            }
            
            	matrice1 = new JTextField[righe][x];
            	matrice2 = new JTextField[righe*x];
                    tabella1.add(T3);
    
    // matrice 1
    		 
            for (int i = 0; i < righe; i++)
            {
                for (int j = 0; j < x; j++)
                {
                    if (Nchar < k)
                    {
                    	matrice1[i][j] = new JTextField();
                    	matrice1[i][j].setText (Character.toString(totale.charAt(Nchar)));
                    	matrice1[i][j].setEditable(false);
                    	matrice1[i][j].setHorizontalAlignment(javax.swing.JTextField.CENTER);
                    
                    Nchar++;
                    
                    if(i == 0)
                        matrice1[i][j].setBackground(Color.GREEN);
                    }
                    else 
                    {
                    	matrice1[i][j] = new JTextField();
                    	matrice1[i][j].setText ("");
                    	matrice1[i][j].setEditable(false);
                    	matrice1[i][j].setHorizontalAlignment(javax.swing.JTextField.CENTER);
                    
                    	Nchar++;
                    
                   
                    }
                    
                    tabella.setLayout(new GridLayout(righe,x));
                    tabella.add(matrice1[i][j]);
                }
            }
    
            String s = Chiave.getText();
            char[] text = new char[s.length()];
            text = s.toCharArray();
            Arrays.sort(text);
    
            pannelloText.add(T4);
            
    // Matrice 2
    
            for (int i = 0; i < x; i++)
            {
                String c1 = Character.toString(text[i]); 
            
                for (int n = 0; n < x; n ++) 
                {
                    
                    String c2 = Character.toString(s.charAt(n));
    				s.replace (Character.toString(s.charAt(n)),".");
    				System.out.println(s);
    				
                        if(c1.equals(c2))
                        {
                        	for (int p = 1; p < righe; p++)
                            {
                            	if (!(matrice1[p][n].getText().equals("")))
                            	{
                            		matrice2[ind] = new JTextField();
                                	matrice2[ind].setText(matrice1[p][n].getText());
                                	matrice2[ind].setEditable(false);
                                	tabella1.add(matrice2[ind]);
    							}
                                ind ++;
                            }
                        }    
                }
            }
            		getContentPane().add(tabella);
            		getContentPane().add(tabella1);
                            setSize(500,501);
    Oppa

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    724
    devi mettermi tutti i riferimenti alle variabili o quanto meno spiegarmi cosa sono in modo che possa sostituirle

    codice:
    TestoOriginale.getText();
    Chiave.getText().length();         
     tabella
    mancano anche tutte le definizio delle matrici, se nn vuoi postare tutto almeno posta in modo che sia in grado di eseguire la parte che nn funziona(mettila in una funzione o qualcosa del genere )altrimenti è inutile che posti

  9. #9
    Utente di HTML.it L'avatar di power83
    Registrato dal
    Oct 2002
    Messaggi
    684
    Per me non è un problema postare tutto!
    Ecco qui!!

    codice:
    import java.awt.*;
    import javax.swing.*;
    import java.util.*;
    import java.lang.*;
    
    public class Matrice extends javax.swing.JApplet implements Runnable 
    {
    
    // Dichiarazione dei pannelli utilizzati.
    
        public JTextField TestoOriginale;
        public JTextField Chiave;
        private JLabel T1;
        private JLabel T2;
        private JLabel T3;
        private JLabel T4;
    
        private JButton CreaMatrice;
    	private JButton Cancella;
    
        private JPanel pannelloText;
        private JPanel tabella;
        private JPanel tabella1;
    
        private JTextField[][] matrice1;
        private JTextField[] matrice2;
    
    // Metodo di inizializzazione.
        
        public void disegnapannelli() 
        {
            tabella = new JPanel();
            tabella1 = new JPanel();
            pannelloText = new JPanel();
    
            getContentPane().setLayout(new GridLayout(3,0));
            pannelloText.setLayout(new GridLayout(7,0));
    
    		pannelloText.add(T1);
            pannelloText.add(TestoOriginale);
            pannelloText.add(T2);
            pannelloText.add(Chiave);
            pannelloText.add(CreaMatrice);
            pannelloText.add(Cancella);
    
            getContentPane().add(pannelloText);
        }
    
        public void init() 
        {
            TestoOriginale = new JTextField();
            Chiave = new JTextField();
    
            T1 = new javax.swing.JLabel();
            T1.setText(" Inserire il testo da cifrare:");
            T2 = new javax.swing.JLabel();
            T2.setText(" Inserisci la chiave:");
            T3 = new javax.swing.JLabel();
            T3.setText(" Testo cifrato:");
            T4 = new javax.swing.JLabel();
            T4.setText(" Matrice associata: ");
    
            CreaMatrice = new JButton();
            CreaMatrice.setText("Cifra");
            CreaMatrice.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    creaMatr(evt);
                }
            });
    
            Cancella = new JButton();
            Cancella.setText("Cancella");
            Cancella.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    Canc(evt);
                }
            });
            
        disegnapannelli();
        
        }
    
        public void run()
        {
            String Testo = TestoOriginale.getText();
            String TestoOriginale1 = Testo.replace(" ", "");
            String TestoChiave = Chiave.getText();
            String totale = TestoChiave + TestoOriginale1;
    
            int x = Chiave.getText().length();
            int y = TestoOriginale1.length();
            int k = totale.length();
    
            int Nchar = 0;
            int ind =0;
            int righe = 0;
    
            for (int NumeroRighe = 0 ; NumeroRighe < y ; NumeroRighe++)
            {
                int controllo = NumeroRighe * x;
                if (controllo >= y)
                {
                    righe = NumeroRighe+1;
                    break;
                }
            }
    
            matrice1 = new JTextField[righe][x];
            matrice2 = new JTextField[righe*x];
    
    // matrice 1
    
            for (int i = 0; i < righe; i++)
            {
                for (int j = 0; j < x; j++)
                {
                    if (Nchar < k)
                    {
                    	matrice1[i][j] = new JTextField();
                    	matrice1[i][j].setText (Character.toString(totale.charAt(Nchar)));
                    	matrice1[i][j].setEditable(false);
                    	matrice1[i][j].setHorizontalAlignment(javax.swing.JTextField.CENTER);
                    	Nchar++;
    
                    if(i == 0)
                        matrice1[i][j].setBackground(Color.GREEN);
                    }
                    else
                    {
                    	matrice1[i][j] = new JTextField();
                    	matrice1[i][j].setText ("");
                    	matrice1[i][j].setEditable(false);
                    	matrice1[i][j].setHorizontalAlignment(javax.swing.JTextField.CENTER);
                    	Nchar++;
                    }
          
                    tabella.setLayout(new GridLayout(righe,x));
                    tabella.add(matrice1[i][j]);
                }
            }
    
    // Matrice 2
    		
            String s = Chiave.getText();
            char[] text = new char[s.length()];
            text = s.toCharArray();
            Arrays.sort(text);
    		tabella1.add(T3);
    
            for (int i = 0; i < x; i++)
            {
                String c1 = Character.toString(text[i]); 
    
                for (int n = 0; n < x; n ++)
                {
                    String c2 = Character.toString(s.charAt(n));
    				s.replace (Character.toString(s.charAt(n)),".");
    				System.out.println(s);
    
                        if(c1.equals(c2))
                        {
                        	for (int p = 1; p < righe; p++)
                            {
                            	if (!(matrice1[p][n].getText().equals("")))
                            	{
                            		matrice2[ind] = new JTextField();
                                	matrice2[ind].setText(matrice1[p][n].getText());
                                	matrice2[ind].setEditable(false);
                                	tabella1.add(matrice2[ind]);
    							}
                                ind ++;
                            }
                        }
                }
            }
    				pannelloText.add(T4);
    				getContentPane().add(tabella);
            		getContentPane().add(tabella1);
                    setSize(500,501);
        }
    
        public void creaMatr(java.awt.event.ActionEvent evt)
        {
            Thread t = new Thread(this);
            t.start();
        }
    
        public void Canc(java.awt.event.ActionEvent evt)
        {
        	getAppletContext().showDocument(getDocumentBase());
        }
    }
    Oppa

  10. #10
    Utente di HTML.it L'avatar di power83
    Registrato dal
    Oct 2002
    Messaggi
    684
    Quindi...adesso che c'è tutto il codice...nulla??

    Oppa

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.