Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    [java] Confronto Stringhe ..

    Salve a tutti,
    ho un problema di confronto tra due stringhe.
    vi spiego subito.
    date due stringhe esempio:
    s1 "ciao "
    s2 "C ia O "


    le stringhe devono risultare uguali tra loro anche se sono presenti in una di esse maiuscole o minuscole o spazi.il confronto deve essere fatto solo guardando i caratteri che compongono le due parole .le due stringhe di esempio devono risultare uguali.
    Spero che qualcuno mi riesca ad aiutare
    Saluti,

  2. #2
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    Credo proprio (ma potrei sbagliarmi, io darei un'okkiata alle API) che non ci sia alcun metodo della classe String che ti permetta di fare ciò, piuttosto credo che debba tu scrivere un metodo che confronti carattere a carattere e gestisca le particolarità che vuoi.
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  3. #3
    bhè, ti fai una funzioncina che ti tolga dalla stringa che vuoi considerare tutti i caratteri che non vuoi, poi puoi convertire le due stringhe allo stesso case (toLowerCase, toUpperCase) oppure confrontare le due direttamente con equalsIgnoreCase
    23-08-2005: Udinese in cémpions lìg
    Questa estate l'ho passata a Tallin

  4. #4
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    Questi ti può aiutare a confrontare due caratteri ignorando se è maiuscolo o minuscolo:
    http://java.sun.com/j2se/1.4.2/docs/...a.lang.String)
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  5. #5
    Per confrontare due stringhe ignorando maiuscole e minuscole puoi usare equalsIgnoreCase.

    Per togliere gli spazi prova a guardare nella documentazione il funzionamento di StringTokenizer(String str). Una volta ottenuti più token della stessa stringa puoi ricostruirla con una banale concatenazione.

    Chiedi se non è chiaro.

  6. #6
    String origine = "Ci a o ";
    String replica = roigine.replace(' ','%');
    String nuova = "";
    int i = 0;
    for(i=0;i<replica.length();i++) {
    if(rep.charAt(i)!='%') {
    char temp = replica.charAt(i);
    Character cc = new Character(temp);
    nuova = nuova.concat(cc.toString());
    }
    HiFly !!!!!!!!!!!!!

  7. #7
    te lo scrivo meglio scusami:

    String origine = "Ci a o ";
    String replica = origine.replace(' ','%');
    String nuova = "";
    int i = 0;
    for(i=0;i<replica.length();i++) {
    if(rep.charAt(i)!='%') {
    char temp = replica.charAt(i);
    Character cc = new Character(temp);
    nuova = nuova.concat(cc.toString());
    }
    }


    poi puoi usare equalsIgnoreCase
    HiFly !!!!!!!!!!!!!

  8. #8
    che soluzioni strambe...


    la via più semplice sono le regular expression, cerca materiale in merito e vedi tu.

    se la stringa 1 è fissa, ti scrivi un pattern tu.. se è variabile, lo fai generare dinamicamente.


    includendo il package gnu.regexp dovrebbe essere qualcosa del genere

    RE re = new RE("\\s*c\\s*i\\s*a\\s*o",RE.REG_ICASE);
    boolean matches = re.isMatch(stringa_da_confrontare);


    così con 2 righe di codice hai risolto...
    poi se la stringa del confronto è variabile allora ti crei una stringa di appoggio per definire il pattern

    String pattern = "\\s*c\\s*i\\s*a\\s*o"; <-- questo lo fai scrivere dinamicamente
    RE re = new RE(pattern,RE.REG_ICASE);
    boolean matches = re.isMatch(stringa_da_confrontare);

  9. #9
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Visto che sono intervenuti in tanti dico pure la mia


    Per togliere tutti gli spazi da una stringa:

    String s = "C i a o";
    s = s.replaceAll(" ", "");

    alla fine s sarà: "Ciao"


    Quindi, date due stringhe uno e due, per effettuare il confronto che vuoi tu basta fare

    uno.replaceAll(" ", "").equals(due.replaceAll(" ", ""));


  10. #10
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    Originariamente inviato da anx721
    Visto che sono intervenuti in tanti dico pure la mia


    Per togliere tutti gli spazi da una stringa:

    String s = "C i a o";
    s = s.replaceAll(" ", "");

    alla fine s sarà: "Ciao"


    Quindi, date due stringhe uno e due, per effettuare il confronto che vuoi tu basta fare

    uno.replaceAll(" ", "").equals(due.replaceAll(" ", ""));

    Mi pare la soluzione più comoda.....
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

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.