Newsgroup: it.comp.java
Titolo: Stringhe "taglia e cuci"

Ciao a tutti,
ho un problema logistico, vengo subito al punto.
ho un array di stringhe:
 String cerca[] = { "uno", "due", "tre" };
ho una stringa con del testo semplice
String testo = "Questo testo contiene anche le parole uno, due e tre";
Domanda:
esiste un qualche metodo predefinito, funzione, classe, altro che mi possa
trovare un elemento dell'array cerca[] nella stringa testo restituendomi la
posizione (e/o l'ultima, ma per questo credo basti un {
poscar+cerca[1].getLength } -> vedi giů) del primo carattere dell'elemento
stesso?
Es.:
int poscar = cercatesto(testo, cerca[1]);
//dove poscar prende il valore 42, ovvero la posizione della "d" di "due"
E' tutto il pomeriggio che cerco una cosa del genere senza grandi risultati
:(
Grazie e ciao

Ciao,
 prova a dare un'occhiata ai metodi indexOf() della class String
Luca


 Grazie e ciao
Se ho capito bene il tuo problema forse hai perso il pomeriggio a cercare
nel posto sbagliato. E il primo posto in cui cercare è la documentazione
delle API.
classe: 
java.lang.String
metodo:
public int indexOf(String str)
Returns the index within this string of the first occurrence of the
specified substring.
Inviato da 
www.mynewsgate.net

 E' tutto il pomeriggio che cerco una cosa del genere senza grandi risultati
E dove hai cercato, sul sito della Disney?
Processo logico: operazione su stringa, classe String, metodi, metodo 
indexOf.

 specified substring.
Grazie ad entrambi :)
Mi sento quasi idiota :p
Però mi sorge un dubbio... se avessi due parti identiche nella stessa string
e volessi trovare la 2°?
per capirci:
String testo = "ciao ciao, come va?";
se ho capito bene testo.indexOf("ciao"); mi restituisce "0" (in quanto è il
1° carattere), ma il 2° ciao (quindi "5")?

 indexOf.
No, sul ng con google, principalmente... sul sito della sun mi ci ritrovo
male, prob sbaglio metodi di ricerca.

 String testo = "ciao ciao, come va?";
a naso direi tipo: fare uno split su "testo" e fare un for lungo
"testo.length" di "testo.indexOf" per ogni elemento dell'array, può
funzionare o esiste qualche metodo predefinito/via migliore?

 male, prob sbaglio metodi di ricerca.
Hint:
http://java.sun.com/j2se/1.4.2/docs/api/index.html

 1° carattere), ma il 2° ciao (quindi "5")?
Sempre sulla 
doc.ne
 delle API, *subito dopo* il metodo che ti ho indicato, trovi
public int indexOf(String str, int fromIndex)
Per cercare la seconda potresti fare un primo
int pos = testo.indexOf("ciao");
e poi
pos = testo.indexOf("ciao", pos + "ciao".length());
Oppure, come hai detto, usare il metodo split che ti permette di
generalizzare maggiormente il problema.
Cmq, e ti rispondo ad un post precedente, scaricati la documentazione delle
API e soprattutto impara a consultarla. Eviterai spesso di dover, come si
dice, reinventare la ruota!
Inviato da 
www.mynewsgate.net

 generalizzare maggiormente il problema.
Ok, grazie a tutti (anche a Vincent Vega).
Penso sceglierň la strada dello split in quanto la stringa č dinamica.
grazie ancora,
ciao

 1° carattere), ma il 2° ciao (quindi "5")?
Dunque se devi trovare l'ultima occorrenza di una sottostringa all'interno
di un oggetto Stiring, guarda anche il metodo lastIndexOf(...) sempre nella
documentazione Sun :)
Per l'analisi delle stringhe dai anche un occhio alle RegularExpression
(packakage java.util.regex). Magari adesso non fa al tuo caso ma è molto
potente.
Ciao D.
Inviato da 
www.mynewsgate.net

anche la classe StringTokenizer potrebbe aiutarti
(mi sa che ora è sostituita dalle regular-expression , che sono molto
più flessibili ma anche più incasinate)