Sostituire parola in una stringa

di il
2 risposte

Sostituire parola in una stringa

Ciao a tutti,
mi sono avvicinato da poco a Java, e mi sto divertendo a creare i miei primi programmini.
Oggi mi sono imbattuto in un piccolo problema che non riesco a risolvere.
Vorrei creare un metodo che permette di verificare se all'interno della stringa è presente una determinata parola. Se trovata deve essere sostituita con dei determinati valori.
Esempio del risultato che vorrei ottenere:
Stringa base da controllare:
te givetokens PLAYERNAME 1
Se presente la parola PLAYERNAME, vorrei ottenere questo risultato:
"te givetokens " + event.getPlayer().getName() + " 1"
Qualcuno sa aiutarmi?

Grazie in anticipo!

2 Risposte

  • Re: Sostituire parola in una stringa

    Vallo ha scritto:


    Vorrei creare un metodo che permette di verificare se all'interno della stringa è presente una determinata parola. Se trovata deve essere sostituita con dei determinati valori.
    La classe String ha già dei metodi per fare un "replace", verifica se ti bastano.
  • Re: Sostituire parola in una stringa

    andbin ha scritto:


    Vallo ha scritto:


    Vorrei creare un metodo che permette di verificare se all'interno della stringa è presente una determinata parola. Se trovata deve essere sostituita con dei determinati valori.
    La classe String ha già dei metodi per fare un "replace", verifica se ti bastano.
    Ok, ho ricontrollato tutti i metodi e ho scritto questo codice che sembra funzionare:
    public class Main {
    
        public static void main(String[] args) {
            String stringa = "ciao questa prova di %PLAYER%, deve funzionare!";
            String player = estraiStringa(stringa, '%', '%');
            System.out.println("Estraggo per sostituire: " + player);
            stringa = stringa.replace(player, "Vallo");
            System.out.println(stringa);
    
        }
    
        public static String estraiStringa(String stringa, char i, char f) {
            int posin = stringa.indexOf(i);
            int posfi = stringa.lastIndexOf(f);
            return stringa.substring(posin, posfi+1);
        }
    }
    In primis vorrei chiedervi se può essere migliorato. È possibile o è già ben strutturato?
    Poi volevo sapere se è possibile modificare il risultato in una cosa del genere:
    "ciao questa prova di"+ event.getPlayer().getName() +", deve funzionare!"
    Grazie!
Devi accedere o registrarti per scrivere nel forum
2 risposte