Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di killall
    Registrato dal
    Feb 2003
    Messaggi
    125

    [java] Parser JTextArea

    Salve.
    Il mio problema consiste nel poter individuare le parole scritte in una textarea. quindi come saparazione , spazio \n.
    Non contare le parole presenti. ma ottenele per poterle confrontare.
    Ho cercato di fare un ciclo dalla posizione 0 fino all'ultima cercando di stamparmi ogni singolo carattere. ma non mi funziona.
    come si ottiene un carattere da una textarea?
    io ho provato con text.getDocument()
    e da questo ho ottenuto gli offSet di inizio e fine del testo e a ciclo cerco di selezionare solo un carattere x volta x capire dove c'è la fine della parola. boh ditemi voi se c'è un metodo + semplice....
    ciao
    "Sono i miei testi a dirti chi sono, più di qualsiasi cosa tu abbia sentito su come sono fatto dalla cinta in giù (Robert Plant)"

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Ti consiglio di procedere in questo modo:

    1) Ottieni il Document dall'oggetto JTextArea
    2) Ottieni un oggetto String dal Document
    3) Utilizzi i metodi di String ( charAt() ) per ottenere ciascun carattere
    codice:
    Document doc = text.getDocument();
    String testo = doc.getText(0, doc.getLength());
    
    for (int i=0; i<testo.length(); i++) {
       System.out.println("Carattere in posizione " + (i + 1) + ": " + testo.charAt(i));
    }
    Però, per fare quello che chiedi, ossia tokenizzare la stringa, puoi usare l'oggetto StringTokenizer di java.util. (anche se si prevede che in futuro sarà sostituito, per ora molte classi lo utilizzano). Puoi dare un'occhiata alla documentazione di StringTokenizer qui: http://java.sun.com/j2se/1.4.2/docs/...Tokenizer.html

    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

  3. #3
    Utente di HTML.it L'avatar di killall
    Registrato dal
    Feb 2003
    Messaggi
    125
    io vorrei anche ottenere il testo della textarea riga x riga ho fatto cosi ma non ottengo nulla.

    codice:
    public void cerca() {
    		
            String riga="";
    	int contentCount=((JTextArea) text).getLineCount();
    	Element paragraph = text.getDocument().getDefaultRootElement();
    		
    	for (int i = 0; i < contentCount; i++) {
    		Element e = paragraph.getElement(i);
    		try {
    		    riga = text.getText(e.getStartOffset(), e.getEndOffset()-1);
    		} catch (BadLocationException ex) {
    		    riga="";
    		}
    		StringTokenizer st = new StringTokenizer(riga);
                    System.out.print(st.countTokens() + " ");
    	}
    			
    }
    cosi dovrei almeno sapere il numero di parole x riga? xkè non funziona?
    "Sono i miei testi a dirti chi sono, più di qualsiasi cosa tu abbia sentito su come sono fatto dalla cinta in giù (Robert Plant)"

  4. #4
    Utente di HTML.it L'avatar di killall
    Registrato dal
    Feb 2003
    Messaggi
    125
    Ho risolto cosi

    codice:
    public ArrayList cerca(ArrayList word) {
    		
    		ArrayList indiciRiga = new ArrayList();
    		int numRiga = 0;
    		
    		StringTokenizer righe = new StringTokenizer(text.getText(),"\n");
    		while (righe.hasMoreTokens()) {
    			String riga = righe.nextToken();
    			riga.replace(',', ' ');
    			riga.replace(';', ' ');
    			riga.replace('.', ' ');
    			StringTokenizer parole = new StringTokenizer(riga);
    			while (parole.hasMoreTokens()) {
    				String tempWord = parole.nextToken();
    				for (int i = 0; i < word.size(); i++) {
    					if ((tempWord.equals(word.get(i))) && !indiciRiga.contains(word.get(i))) {
    						indiciRiga.add(new Integer(numRiga));
    					}
    				}
    		    }
    			numRiga++;
    	    }
    		return indiciRiga;
    
    	}
    "Sono i miei testi a dirti chi sono, più di qualsiasi cosa tu abbia sentito su come sono fatto dalla cinta in giù (Robert Plant)"

  5. #5
    Utente di HTML.it L'avatar di killall
    Registrato dal
    Feb 2003
    Messaggi
    125
    mi consente di individuare l'idice delle righe in cui si trova no delle parole di ArrayList nella textarea.
    Però come faccio a non far verificare le occorrenze nell'array list.
    C'è un metodo x sapere se appartiene già un elemento.
    io ho provato container() che da un boolean. boh non va.
    ciao
    "Sono i miei testi a dirti chi sono, più di qualsiasi cosa tu abbia sentito su come sono fatto dalla cinta in giù (Robert Plant)"

  6. #6
    Utente di HTML.it L'avatar di killall
    Registrato dal
    Feb 2003
    Messaggi
    125
    Risolto in contains devo metterci l'indice non la parola. che stupido. ciao!
    "Sono i miei testi a dirti chi sono, più di qualsiasi cosa tu abbia sentito su come sono fatto dalla cinta in giù (Robert Plant)"

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