Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Ancora su modifica di stringhe

    Il problema e' questo :
    definire una funzione che ha come parametri una stringa s, e due caratteri c1 e c2. la funzione restituisce una stringa ricavada da s in cui tutte le occorrenze di c1 sono state sostituite con c2. ( esempio, gatto g r genera la stringa ratto, sasso s t restituisce tatto ).

    Avevo pensato a questo : definisco la stringa vuota ns, imposto a 0 il contatore, sino a che il contatore e' minore della lunghezza della stringa, se trovo una lettera = a car1 allora sostituisco con car 2, altrimenti restituisco la lettera originale

    codice:
    function stringa (n,car1,car2){
             var ns = ' ';
    				 var i = 0;
    				 while (i<n.length) {
    				 if ((n.substr(i,1) == car1))
    				 ns = n.replace(n.substr(i,1),car2) ;
                                                        else 
                                                        ns = n.substr(i,1);
    				 i++;
    				 }
    				 return ns ;
    }
    Il ragionamento dovrebbe filare,pero non funziona. Oltretutto replace sostituisce solo la prima occorrenza di una lettera in una stringa, non so che comando usare ...

  2. #2
    codice:
    function stringa (n,car1,car2){
        var ns = '';
        var i = 0;
        while (i<n.length) {
    	if ((n.substr(i,1) == car1))  // se l'i-esimo carattere della stringa è uguale a car1
              ns += car2;                    // aggiungo a ns il carattere car2 
            else                                // altrimenti, se è diverso
              ns += n.substr(i,1);         // aggiungo a ns il carattere trovato
            i++;                               // poi incremento i
        }
        return ns ;                          // ritorno ns
    }
    HTH
    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

  3. #3
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Originariamente inviato da ezechiele2
    Il problema e' questo :
    definire una funzione che ha come parametri una stringa s, e due caratteri c1 e c2. la funzione restituisce una stringa ricavada da s in cui tutte le occorrenze di c1 sono state sostituite con c2. ( esempio, gatto g r genera la stringa ratto, sasso s t restituisce tatto ).
    quello che descrivi è un replace
    il replace in javascript ha come primo parametro una regular expression (che indica cosa cercare nella stringa) e come secondo parametro una stringa (il carattere che sostituisce quello che trova la RE)
    quello che chiedi tu sarebbe
    codice:
    function stringa(n,car1,car2){
    	var re=new RegExp(car1,'g');
    	return n.replace(re,car2)
    }
    però mi pare di aver capito che lo devi fare peffozza con un ciclo... allora non usare il replace
    codice:
    function stringa (n,car1,car2){
    	var ns = '';
    	var i = 0;
    	while (i<n.length) {
    		if (n.substr(i,1) == car1)
    			ns+=car2;
    		else 
    			ns+=n.substr(i,1);
    		 i++;
    	 }
    	return ns ;
    }

  4. #4
    Eh Eh .. abbiamo pensato (e scritto) in contemporanea la stessa cosa ...
    ciao!
    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

  5. #5
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    e sì uguale uguale







    io ho tolto anche le parentesi in più su ((n.substr(i,1) == car1))


  6. #6
    Originariamente inviato da willybit
    io ho tolto anche le parentesi in più su ((n.substr(i,1) == car1))
    Ed io ci ho messo un po' di commenti, così il ragazzo studia e impara! :rollo:



    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

  7. #7
    Ed io vi ringrazio tutti e 2 , siete davvero bravi !!
    Mi spiace se non so molto ma ho un libro di testo che definire osceno e' poco , non ha nemmeno un esempio.

    Inutile spiegare pagine e pagine di teoria se poi non fai vedere almeno un esempio ( il while e' messo come appendice del for .. )

    p.s : conoscete mica un buon libro da consigliarmi ?

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 © 2026 vBulletin Solutions, Inc. All rights reserved.