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

    [Java] sostituire \' con '

    ciao, ho una stringa
    codice:
    String add=node.getValue();
    devo sostituire tutti gli \ ' (senza spazio) con '
    quindi faccio:
    codice:
    add=add.replaceAll(" \ ' "," ' "); //senza gli spazi
    ma non funziona! mi sapete dire il motivo e come fare?

    è strano perchè uso
    codice:
    stringa=stringa.replaceAll(" ' "." ' ' "); //senza gli spazi
    e funziona!!!

    help!!!

  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    hai fatto male l'escape
    add=add.replaceAll("\\'","'");
    dovrebbe andare

  3. #3
    niente, non funziona nemmeno cosi!

    sia che metto come ho scritto io, sia che metto come mi hai detto tu, sostituisce solo ' con ' mentre rimane lo \

    esempio

    se la stringa di partenza è: abcdefg\'
    dopo il replace resta : abcdefg\'

    me ne sono accorto perchè invece di sostituire con ' ho messo - ed ha stampato:
    dopo il replace : abcdefg\-

    cosa succede? perchè fa questo giochetto java??!?!

  4. #4
    risolto con:
    codice:
    add=add.replaceAll(" \ \ \ \ ' "," ' "); //senza spazi
    funziona, ma non l'ho capita!!!
    grazie mille cmq!

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da stex1984
    risolto con:
    codice:
    add=add.replaceAll(" \ \ \ \ ' "," ' "); //senza spazi
    funziona, ma non l'ho capita!!!
    Semplice ... te lo spiego io (bastava che tu leggessi bene la documentazione di replaceAll!).

    replaceAll usa una espressione regolare per effettuare le ricerche all'interno della stringa. Nelle espressioni regolari, il backslash ( \ ) è un carattere di escape e per matchare proprio il carattere \ devi mettere \\. Quindi l'espressione regolare giusta è \\\'.
    Ma siccome la stringa con l'espressione la stai scrivendo nel sorgente come "literal" (letterale), devi ulteriormente fare l'escape di \ perché nei sorgenti Java il backslash è nuovamente un carattere di escape.
    Quindi ecco il perché di \\\\\'.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Perfetto! ora finalmente ho capito! grazie mille per la spiegazione! ciao

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.