| 
 | |||||||
| 
 | 
|  | 
|  | 
|  | Strumenti | 
|  19-02-2008, 10:39 | #1 | 
| Senior Member Iscritto dal: Oct 2000 Città: Udine 
					Messaggi: 3178
				 | 
				
				[JAVA] patter per nome="valore", nome="valore"
			 
		Ciao a tutti è da poco che mi occupo di java, dovrei "spezzare" una stringa in input seguendo il pattern nome="valore", nome="valore", ma non ho idea da dove iniziare. Quella stringa dovrebbe diventare una mappa di hash possibilmente! grazie! | 
|   |   | 
|  19-02-2008, 10:45 | #2 | 
| Senior Member Iscritto dal: Jan 2005 Città: Siena 
					Messaggi: 1313
				 | 
		MMM potresti provare con la classe StringTokenizer
		 | 
|   |   | 
|  19-02-2008, 11:30 | #3 | |
| Senior Member Iscritto dal: Nov 2005 Città: TO 
					Messaggi: 5206
				 | Quote: 
 Codice: import java.util.regex.*;
public class Prova
{
    public static void main (String[] args)
    {
        String str = "pippo=\"123\" pluto=\"456\"";
        Pattern pattern = Pattern.compile ("(\\w+)=\"(.*?)\"");
        Matcher matcher = pattern.matcher (str);
        
        while (matcher.find ())
            System.out.println (matcher.group(1) + "  =  " + matcher.group(2));
    }
}
				__________________ Andrea, SCJP 5 (91%) - SCWCD 5 (94%) | |
|   |   | 
|  26-02-2008, 15:47 | #4 | 
| Senior Member Iscritto dal: Oct 2000 Città: Udine 
					Messaggi: 3178
				 | 
		grazie per i consigli, purtroppo le espressioni regolari non sono il mio forte!   Ho iniziato splittando la mia stringa tramite un separatore costituito dalla virgola (  , in questo modo: Codice: String testStr = "field1 = \"value1\" , field2=\"value2\",field3=\"valu , e3\""; String fieldSep = "\\s*,\\s*"; String[] tokens = testStr.split(fieldSep); Codice: TOKEN: field1 = "value1" TOKEN: field2="value2" TOKEN: field3="valu TOKEN: e3"   | 
|   |   | 
|  26-02-2008, 16:23 | #5 | 
| Member Iscritto dal: Apr 2006 
					Messaggi: 225
				 | 
		Se vuoi splittare una stringa, e usi una JDK >= 1.5, puoi usare il metodo split di String a cui devi passare solo il delimitatore. Con 2 giri, uno sulla virgola e uno sull'uguale, dovresti poter creare l'Hashmap | 
|   |   | 
|  26-02-2008, 17:27 | #6 | |
| Senior Member Iscritto dal: Oct 2000 Città: Udine 
					Messaggi: 3178
				 | Quote: 
  il primo giro, come dici tu, con split (usando ad esempio il pattern spazio-virgola-spazio) fallirebbe nel caso un valore abbia proprio questo pattern.... come faccio a dire spazio-virgola-spazio SOLO SE attorno non ci sono le doppie virgolette? cioè <spazio>,<spazio> ----> OK "<spazio>,<spazio>" ---> NO! | |
|   |   | 
|   | 
| Strumenti | |
| 
 | 
 | 
Tutti gli orari sono GMT +1. Ora sono le: 11:21.









 
		 
		 
		 
		









 
  
 



 
                        
                        










