PDA

Visualizza la versione completa : [java] stringa contenente un carattere


Damma&Manu
20-12-2002, 15:11
ciao a tutti!

Come faccio a controllare se in un TextField stato inserito il carattere " ' "

GRAZIE DI TUTTO!!!

lelefante
20-12-2002, 15:14
Prendi la stringa del TextField e chiami su di essa il metodo indexOf.
Il carattere da cercare e' '\'', cioe' la sequenza di escape \'

floyd
20-12-2002, 15:15
int p = textField.getText().indexOf("'");
se trova il carattere p diventa la posizione nel campo, altrimenti diventa -1

Damma&Manu
20-12-2002, 15:34
Vi speigo bene cosa devo fare...

Io devo eseguire una striga SQL dove uso un parametro presente in una stringa.

es: String sqlquery="SELECT * FROM tabella WHERE(tabella.nome=\'"+nome+"\')"
rs=stmt.executeQuery(sqlquery);

nome un TextField ma pu anche essere una stringa

Il problema che se in nome presente il
carattere ' la query non viene eseguita perch va in eccezione perch c' il carattere '
Cosa devo aggiungere per far si che lo veda come carattere?


CIAO :ciauz:

floyd
20-12-2002, 15:38
String nome;
int p = textField.getText().indexOf("'");
if (p != -1) {
nome = nome.substring(0, p) + "'" + nome.substring(p);
}
:adhone:

Damma&Manu
20-12-2002, 15:54
3 Cose:

_1: Puoi spiegarmi bene cosa fa?

_2: Puoi dirmi esattamente cosa bisogna mettere


_3: E se c'e pi di un apice?



Grazie

pippo75
20-12-2002, 17:36
invece di uno statement, utilizza un preparedStatement, e cambia leggermente la stringa slq:

Sql = "select * from tabella where nome=?";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, stringaChePrendi);
// setto il 1 ? che trovo nella stringa sql
// ci possono anche essere + ?, basta settarli tutti
rs = ps.executeQuery();

Loading