Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    755

    problema stringhe con carattere \

    Ho una stringa in cui può accadere ci sia il carattere '\',e in questa eventualità vorrei sostituire questo carattere con quest'altro '/'
    ho provato a fare qualcosa del tipo:
    codice:
    String prova="ecco una \".replaceAll("\","/");
    ma non va bene in quanto il carattere '\' è come se mi rendesse le virgolette parte della stringa (non mi ricordo come si chiama in questa circostanza '\')
    o addirittura facendo:
    codice:
    String prova="ecco una \".replaceAll("\\","/");
    ottengo un qualcosa del tipo:
    codice:
    java.util.regex.PatternSyntaxException: Unexpected internal error near index 1
    come posso risolvere?

  2. #2
    prova a mettere così:

    codice:
    String prova="ecco una \\".replaceAll("\\","/");

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    755
    Originariamente inviato da davidesamp
    prova a mettere così:

    codice:
    String prova="ecco una \\".replaceAll("\\","/");
    ho già provato,e avviene il secondo caso che ho sopra descritto.

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Le espressioni regolari hanno i loro caratteri speciali che vanno quotati.

    Il backslash è uno di quelli.

    Le stringhe, a loro volta, hanno dei caratteri speciali che vanno quotati.

    Il backslash è uno di quelli.

    Vuoi avere un backslash in una espressione regolare? Lo devi quotare 2 volte:

    codice:
    String str = tuaStringa.replaceAll("\\\\", "/");
    Il primo quote (in grassetto), porta il primo backslash nell'espressione regolare... il secondo porta il carattere da quotare.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    755
    Originariamente inviato da LeleFT
    Le espressioni regolari hanno i loro caratteri speciali che vanno quotati.

    Il backslash è uno di quelli.

    Le stringhe, a loro volta, hanno dei caratteri speciali che vanno quotati.

    Il backslash è uno di quelli.

    Vuoi avere un backslash in una espressione regolare? Lo devi quotare 2 volte:

    codice:
    String str = tuaStringa.replaceAll("\\\\", "/");
    Il primo quote (in grassetto), porta il primo backslash nell'espressione regolare... il secondo porta il carattere da quotare.


    Ciao.
    grazie 1000,ora funziona!

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.