Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    1

    AIUTO, principiante in Java

    Ciao a tutti,
    sono una nuova arrivata e soprattutto principiante nel linguaggio Java.
    Sto cercando di concludere un programmino (se cosi può essere chiamato) che deve analizzare documenti html al fine di determinare se questo sia o meno ben formato ma sono bloccata su di un paio di classi e su alcuni passaggi che proprio non mi sono chiari, non capisco chiaramente cosa fare e come sviluppare il codice (causa inesperienza dato che il laboratorio esiste per modo di dire uff ).
    Qualche anima pia può venirmi in soccorso ???
    Provo a rendere l'idea su cosa mi sta tartassando. Ho creato la Classe Tag (che rappresenta un generico tag HTML) L’implementazione di questa
    classe deve prevedere di:
    – poter istanziare un elemento della classe a partire da una stringa che
    ne contiene la sua descrizione (si consiglia di iniziare questa operazione
    ‘pulendo’ opportunamente la stringa dagli spazi bianchi), emettendo
    un’eccezione MalformedTagException (la cui classe corrispondente
    dovr`a essere opportunamente implementata) nel caso in cui il
    tag non risulti ben formato;
    – poter determinare se un tag sia di apertura oppure di chiusura;
    – poter determinare il valore associato a un attributo;
    – poter analizzare, tramite il metodo statico Tag getSpecializedtTag(String
    t), la stringa t passata come argomento. Nel caso in cui tale stringa
    contenga la descrizione di un tag ben formato il metodo dovr`a
    restituire la corrispondente istanza di una delle sottoclassi di Tag descritte
    pi`u avanti; in caso contrario il metodo dovr`a invece lanciare
    l’eccezione MalformedTagException;
    – inserire nella classe il metodo astratto void updateStatistics(StatisticsCollector
    stat)

    import prog.io.*;
    public class Tag {
    String tag;

    public Tag(String s) throws MalformedTagException{
    tag=s;

    // manca pulizia (spazi bianchi) della stringa

    public char AppChius(Tag g){

    String nuovotag= (String)g;


    char[] caratteri = nuovotag.toCharArray();


    for (int i = 0; i < caratteri.length; i++){
    if (caratteri[i] == '/')
    return 'c';
    else
    return 'a';

    }
    return 'x';
    }

    public String getTag(){
    return Tag;
    }
    public void Instance(String t) throws MalformedTagException{
    // manca restituire la corrispondente istanza di una delle sottoclassi.

    }
    abstract public void updateStatistics(StatisticsCollectorstat sc);

    }

    In questa classe ci sono a me oscuri punti che devo risolvere:
    1) mi manca la parte di codice dove deve prevedere di istanziare un elemento della classe a partire da una stringa che ne contiene la sua descrizione (si consiglia di partire pulendola dagli spazi bianchi) emettendo un'eccezione se il tag nn risulti ben formato.
    2) e deve poter analizzare, tramite il metodo statico Tag getSpecializedtTag(String
    t), la stringa t passata come argomento. Nel caso in cui tale stringa
    contenga la descrizione di un tag ben formato il metodo dovr`a
    restituire la corrispondente istanza di una delle sottoclassi di Tag descritte
    pi`u avanti; in caso contrario il metodo dovr`a invece lanciare
    l’eccezione MalformedTagException;

    Questi 2 punti mi sono totalmente oscuri.

    In piu la seguente classe TagStack, che rappresenta una generica pila in cui memorizzare tag. Tale classe deve implementare i seguenti metodi:
    – void push(Tag t), che permette di inserire un tag nella lista;
    – Tag pop(), che estrae il tag in cima alla lista e lo restituisce; tale operazione
    `e ovviamente possibile solo nel caso in cui la lista non sia vuota,
    altrimenti il metodo dovr`a lanciare un’eccezione EmptyStackException,

    Questa proprio nn so davvero da dove partire.


    Mi potete aiutare, qualche delucidazione o consiglio? Grazie mille a tutti

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    6
    Per il punto 1 puoi usare i metodi di String (li trovi tranquillamente online se cerchi su google String javadoc) per vedere quelli che fanno al caso tuo. Sicuramente dovrai usare dei metodi che eliminano un carattere in una stringa, e poi verificare la presenza di caratteri come '<', '>', etc.

    Ti consiglio di implementare un metodo che restituisce un valore boolean e che controlla se la stringa in ingresso è effettivamente un tag o meno (ovviamente anche questo metodo deve poter lanciare MTExc). Per il punto 2, chiami il metodo di cui sopra (attenzione però che il metodo deve essere statico!), e in base al valore di ritorno fai quello che devi.

    Per tagStack il consiglio è quello di creare una classe che al suo interno abbia una List (o un altro tipo di collezione che ti torna comoda) e che tramite i metodi push e pop gestisca le operazione di inserimento e di estrazione in testa alla lista.

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Benvenuta sul forum.
    Ti invito subito a leggere il regolamento sulle norme di partecipazione di quest'area, in particolaer la parte riguardante i titoli: il titolo deve riportare il linguaggio usato (e ok), deve essere riassuntivo della discussione e non deve contenere epiteti (come AIUTO, HELP, ecc, specialmente se in MAIUSCOLO)

    Il fatto che tu sia principiante non dice nulla del problema che intendi affrontare.

    Inoltre il codice va postato all'interno dei tag [ CODE ] (basta fare clic sul pulsante '#' quando scrivi i messaggi).


    Correggo il titolo.


    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

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.