PDA

View Full Version : comando java


technic
29-01-2005, 17:03
buongiorno a tutti!
avrei un piccolo problema in java:
ho una stringa del tipo "q, w, E, r, "
devo confrontare se un carattere x fà parte di quella stringa. Grazie ......

end.is.forever
29-01-2005, 17:34
Prova così

public boolean contiene(String s, char c)
{
for (String token : s.split( "," ))
{
tokenSenzaSpazi = token.trim();
if (tokenSenzaSpazi.lengh() == 1 && tokenSenzaSpazi.charAt(0) == c)
return true;
}
return false;
}

Ciao

theClimber
29-01-2005, 18:13
Soluzione alternativa:


public boolean contiene(String s, char c)
{
return (s.indexOf(c) >= 0);
}


La soluzione con lo split e' piu' elegante, ma se la x e' contenuta in un token lungo + di 1 carattere? Questo solo per dire che anche per un problema ssemplice la formalizzazione dei requisiti e' sempre un punto delicato ;)

Inoltre lo split funziona solo su JDK >= 1.4, mentre l'indexof va bene sempre, anche su J2ME (midlet su cellulari ad esempio).

Ciao

end.is.forever
29-01-2005, 18:24
Originariamente inviato da theClimber
La soluzione con lo split e' piu' elegante, ma se la x e' contenuta in un token lungo + di 1 carattere? Questo solo per dire che anche per un problema ssemplice la formalizzazione dei requisiti e' sempre un punto delicato ;)


Penso che intendesse dire che il formato della stringa dovesse essere "carattere, carattere,..."
se è così usa il mio metodo che tiene conto di questo, altrimenti se la stringa può avere un qualsiasi formato usa il metodo di theClimber che è sicuramente più efficiente (se non c'è quel vincolo).

technic
29-01-2005, 20:02
grazie, provo subito!!
comunque la stringa è "carattere, carattere, ....."