Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    81

    Scanner ed espressioni regolari

    codice:
    tmpStr="ATT_00200_4"  Pattern p = Pattern.compile("(^ATT_)+.....+(^_.)"); 		Scanner s = new Scanner(tmpStr).useDelimiter(p); 		String id = s.next();

    voglio ottenere 00200 dove sbaglio? data una stringa mi serve cio' che c'e' tra i due underscore

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

    Re: Scanner ed espressioni regolari

    Originariamente inviato da assmazz
    voglio ottenere 00200 dove sbaglio?
    Innanzitutto la espressione regolare usata da Scanner è per rappresentare un "delimitatore" ... un qualcosa che separa i token, che generalmente è sempre uguale tra i vari token (es. spazi o virgola o qualcosa di più complesso).

    Se poi Scanner intendevi usarlo direttamente con in input la stringa e solo per "estrarre" qualcosa dal mezzo, allora Scanner non ti è particolarmente utile .... usa Matcher e i "gruppi"!!

    codice:
    import java.util.regex.*;
    
    public class Prova {
        public static void main(String[] args) {
            String str = "ATT_00200_4";
            Pattern p = Pattern.compile("ATT_(\\d+)_4");
    
            Matcher m = p.matcher(str);
    
            if (m.find()) {
                System.out.println(m.group(1));
            }
        }
    }
    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
    Sep 2006
    Messaggi
    81
    ok perfetto avevo inteso male io l'uso di Scanner

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