Visualizzazione dei risultati da 1 a 3 su 3

Visualizzazione discussione

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2018
    Messaggi
    2

    creare stringa java da file

    Buongiono a tutti,
    ho un problema con una classe java per la lettura di un file gml.Devo individuare al suo interno 'nodi' e 'archi', ho trovato alcuni esempi e ho creato una classe ReadGml ma quando la metto in esecuzione mi da come errore:

    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
    at editor.ReadFile.getNodes(ReadFile.java:46)
    at editor.ReadFile.main(ReadFile.java:77)

    Non riesco a capire dove sia l'errore spero che qualcuno possa aiutarmi.
    Posto qua sotto il codice:

    codice:
    package editor;
    import java.io.IOException;
    import java.nio.charset.Charset;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    import java.util.ArrayList;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
     
    
    public class ReadGml {
    
     
        private String filename;
        
        public ReadGml(String filename){
            this.filename = filename;
        }
        
    
        public String read() throws IOException{
            byte[] encodedFile = Files.readAllBytes(Paths.get(filename));
            return new String(encodedFile, Charset.forName("ASCII"));
            
        }
        
        public ArrayList<String> getNodes(String content){
            ArrayList<String> nodeList = new ArrayList<String>();        
            String nodePattern = "(id)\\s*[0-9]*";
            Pattern regex = Pattern.compile(nodePattern);
            Matcher match = regex.matcher(content);
            while(match.find()){
                String line = match.group(0);
                nodeList.add(line.split(" ")[1].trim());
            }
            
            return nodeList;
        }
        
    
        public ArrayList<String> getEdges(String content){
            ArrayList<String> edgeList = new ArrayList<String>();        
            String nodePattern = "(source)[\\s]*[\\d]*[\\s]*(target)[\\s]*[\\d]*";
            Pattern regex = Pattern.compile(nodePattern);
            Matcher match = regex.matcher(content);
            while(match.find()){
                String line = match.group(0);
                line = line.replaceAll("( )+"," ");            
                String[] arr = line.split(" ");            
                edgeList.add(arr[1].trim()+","+arr[3].trim());            
            }
            
            return edgeList;
        }    
        
    
        public static void main(String[] args) throws IOException{
            ReadGml readGml = new ReadGml( "prova.gml");
            String content = readGml.read();        
            ArrayList<String> nodes = readFile.getNodes(content);
            ArrayList<String> edges = readFile.getEdges(content);
            for(String node:nodes){
                System.out.println("Node:"+node);
            }
            for(String edge:edges){
                System.out.println("Edge:"+edge);
            }
        }
    }

    Grazie in anticipo a chiunque possa aiutarmi!
    Ultima modifica di LeleFT; 13-12-2018 a 11:19 Motivo: Aggiunti i tag CODE

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.