Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    15

    [JAVA]problema replaceFirst e regex!!!

    ciao a tutti...

    ho una stringa al cui interno sono presenti parole delimitate da Asterischi ex: *PIPPO*
    devo sostituirle con altri valori, facendo replace me le sostituisce tutte ma a me serve che sostituisca solo la prima che incontra...
    ho provato ad usare replaceFirst ma non so come scrivere la regex qualcuno può darmi una mano...
    accetto anche soluzioni alternative al replaceFirst!!!

    grazie!!!

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [JAVA]problema replaceFirst e regex!!!

    Originariamente inviato da MyKol76
    ho una stringa al cui interno sono presenti parole delimitate da Asterischi ex: *PIPPO*
    devo sostituirle con altri valori, facendo replace me le sostituisce tutte ma a me serve che sostituisca solo la prima che incontra...
    ho provato ad usare replaceFirst ma non so come scrivere la regex qualcuno può darmi una mano...
    accetto anche soluzioni alternative al replaceFirst!!!
    Ecco:
    codice:
    String s = "*PIPPO* *PAPERINO*";
    
    String s2 = s.replaceFirst ("\\*.+?\\*", "*CIAO*");
    
    System.out.println (s);
    System.out.println (s2);
    Stampa:
    *PIPPO* *PAPERINO*
    *CIAO* *PAPERINO*


    Se non ti è chiaro il significato della regex, te lo posso anche spiegare.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    15
    ti ringrazio per la risposta...
    forse non mi sono spiegato chiaramente...
    chiedo scusa...

    ci riprovo:

    ho le stringhe String1, String2 e Var

    Var="*PIPPO*"

    String1="sgdsdgsdgsdg *PAPERINO* hgsdfhsfghs *PIPPO* gdsfgdsfgds *PIPPO* sdfgsgsd"

    se faccio:

    String1 = String1.replace( Var , String2);

    tutte le volte che trova il valore di Var (*PIPPO*) su String1 me lo sostituisce con String2.

    devo riuscire a sostituire solo il primo che incontra...

    come posso fare???

    Help!!!

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Ah, ok ... io avevo capito che dovevi sostituire il primo qualunque tra gli asterischi ...

    Allora facciamo così:
    codice:
    String s = "sgdsdgsdgsdg *PAPERINO* hgsdfhsfghs *PIPPO* gdsfgdsfgds *PIPPO* sdfgsgsd";
    
    String var = "\\*PIPPO\\*";
    String var2 = "*CIAO*";
    
    String s2 = s.replaceFirst (var, var2);
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    15
    grazie... così funziona
    ma purtroppo ci sono nuovi problemi...

    quello che sto facendo è caricare il contenuto di due file .rtf su due stringhe...

    String1 e String2

    facendo il replace riesco a inserire String2 in String1 e dopo averlo salvato su un file.rtf
    ottengo un nuovo documento che è la somma dei primi due.

    ecco il problema:

    con il replace normale il tutto funziona... tranne che per il problema che ho già esposto...
    mi fa il replace per tutta la stringa.

    con il replaceFirst invece risolvo il mio primo problema, ma quando vado ad aprire il file.rtf

    all'interno del documento mi trovo tutto il contenuto della seconda stringa compresi i tag di formattazione...

    spero di essermi fatto capire...

    cosa fa di diverso replaceFirst dal replace???

    ciao e grazie!!!

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    15
    problema risolto!!!

    ho trasformato la stringa principale in StringBuffer che ha un metodo replace che vuole due int come coordinate(inizio e fine) per sapere il punto in cui effettuare la sostituzione!!!
    e sostituiscesolo il primo valore che trova!!!

    cia e grazie ancora!!!

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