Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7 punta su un display ampio e fluido, una batteria capace di accompagnare l'uso quotidiano senza ansie da ricarica e un prezzo accessibile, a partire da 179,90 euro per la versione con 64 GB di storage. Lo Snapdragon 6s 4G Gen 2 e i 4 GB di RAM della configurazione più diffusa frenano però chi cerca reattività e multitasking spinto: ecco il bilancio dopo due settimane di prova diretta
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Polygon è la concept car di Peugeot che mostra il futuro delle soluzioni del segmento B: tra design compatti e innovativi affiancati da dimensioni compatte uno scherzo dalla manovrabilità incredibile per le manovre a bassa velocità
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione
OPPO ha portato in Italia, dal 1° luglio 2026, Reno16 Pro: display AMOLED da 6,32 pollici a 144Hz, tripla fotocamera con sensore principale da 200 megapixel, chip Dimensity 8550 Super e batteria da 6000mAh, al prezzo di lancio di 899 euro. Lo abbiamo provato per due settimane insieme al nuovo accessorio Bubble, per capire se la formula compatta della serie regge ancora di fronte a un listino da 1099 euro
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 21-05-2004, 07:32   #1
anna182
Member
 
Iscritto dal: May 2004
Messaggi: 60
JAVA STRINGHE

qlc sa spiegarmi come faccio a contare i caratteri che compongono una stringa??
siccome se la mia stringa ha 16 caratteri significa che e il codice che mi serve....
__________________
anna182
vivi come se dovessi morire domani, pensa come se non dovessi morire mai!!!
anna182 è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2004, 07:50   #2
Hawke
Member
 
Iscritto dal: Mar 2002
Città: Milano
Messaggi: 141
Per contare i caratteri di una stringa puoi usare il metodo length().

Byez
Hawke
__________________
<SetiEmperor>
Hawke è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2004, 08:39   #3
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
La classe String è fondamentale. Devi conoscere bene i suoi metodi. Ma la usi la doc delle API?? http://java.sun.com/j2se/1.4.2/docs/...ng/String.html
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2004, 08:49   #4
thefrog
Senior Member
 
L'Avatar di thefrog
 
Iscritto dal: Feb 2003
Messaggi: 3532
nomestringa.length()

se per esempio devi scandire la stringa ti fai:


for (int i = 0;i<nomestringa.length();i++)
{

}

se usi javadoc vedrai che questi dubbi te li togli in 2 minuti.
si possono consultare su internet o scaricarli (sono una 30ina di mb)

ciao
thefrog è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2004, 09:11   #5
anna182
Member
 
Iscritto dal: May 2004
Messaggi: 60
grazie per la risp...scritta cosi la mia domanda sembrava un po scema pero il fatto e che nn so come distinguere due stringhe...e un po un casino....
__________________
anna182
vivi come se dovessi morire domani, pensa come se non dovessi morire mai!!!
anna182 è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2004, 09:41   #6
thefrog
Senior Member
 
L'Avatar di thefrog
 
Iscritto dal: Feb 2003
Messaggi: 3532
le potresti scandire un carattere alla volta e quando uno è diverso sai che sono diverse oppure potresti usare il compareTo ma nn mi ricrdo la sintassi..........


se ci spieghi un pò meglio cosa devi fare magari si risolve in un attimo....
thefrog è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2004, 09:43   #7
Angus
Senior Member
 
L'Avatar di Angus
 
Iscritto dal: Dec 2001
Città: Milano
Messaggi: 545
Quote:
Originariamente inviato da Hawke
Per contare i caratteri di una stringa puoi usare il metodo length().

Byez
Hawke
[OT]
Se sei l'Hawke che conosco da anni... *Benvenuto*
[/OT]

per sapere se due stringhe s1 e s2 sono diverse basta constrollare che non siano uguali col metodo equals()
__________________
Angus the Hunter @ Realm of magic | Angus Young @ Batracer
°SetiEmperor°| Ninja Technologies
{ qualunque cosa sia, è veloce e fa male (cit.) }
Angus è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2004, 09:51   #8
thefrog
Senior Member
 
L'Avatar di thefrog
 
Iscritto dal: Feb 2003
Messaggi: 3532
Quote:
Originariamente inviato da Angus
[OT]
Se sei l'Hawke che conosco da anni... *Benvenuto*
[/OT]

per sapere se due stringhe s1 e s2 sono diverse basta constrollare che non siano uguali col metodo equals()
porc!
nn ci avevo pensato!
thefrog è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2004, 09:56   #9
Hawke
Member
 
Iscritto dal: Mar 2002
Città: Milano
Messaggi: 141
Quote:
Originariamente inviato da Angus
[OT]
Se sei l'Hawke che conosco da anni... *Benvenuto*
[/OT]

per sapere se due stringhe s1 e s2 sono diverse basta constrollare che non siano uguali col metodo equals()

__________________
<SetiEmperor>
Hawke è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2004, 10:02   #10
anna182
Member
 
Iscritto dal: May 2004
Messaggi: 60
hihi beh...
HO una stringa che invio tramite socket che e composta da 16 caratteri e sarebbe il codice letto da un ibutton...e in piu invio al socket dei comandi tipo ("apri" , "stato" ecc) ora come potrei fare secondo voi a far capire al server quale e un codice ibutton e quale e un comando?? avevo pensato alla lunghezza ma forse un giorno ci sara un comando lungo 16 caratteri...oppure a mettere un carattere di riconoscimento davanti alla stringa tipo i x ibutton e c x comando ma e poco furbo per quanto riguarda la sicurezza...boh voi come fareste??
__________________
anna182
vivi come se dovessi morire domani, pensa come se non dovessi morire mai!!!
anna182 è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2004, 10:07   #11
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
Quote:
Originariamente inviato da thefrog
nomestringa.length()

se per esempio devi scandire la stringa ti fai:


for (int i = 0;i<nomestringa.length();i++)
{

}

se usi javadoc vedrai che questi dubbi te li togli in 2 minuti.
si possono consultare su internet o scaricarli (sono una 30ina di mb)

ciao
Non puoi accedere ai singoli caratteri di una stringa come in un array di char. Ovvero non è lecito un accesso di questo tipo
String mystringa="ciao";
char c = mystringa[i].

Se si ha bisogno di un'accesso di questo tipo si adopera il metodo toCharArray() sulla stringa,l oppure si usa il metodo substring(...) appropriato.

Per quel che riguarda il confronto tra stringhe, si deve prestare attenzione a non incorrere nell'errore banale di testare

Codice:
String s1 = "ciao"
String s2 = "ciao"

if (s1 == s2) restituisce false
Infatti s1 e s2 sono 2 differenti puntatori a 2 locazioni differenti di memoria. Allora si usa il metodo s1.equals(s2) se si deve tstare la sola uguaglianza, oppure il metodo s1.compareTo(s2) il cui risultato ci da informazioni su quale delle 2 sia lessicograficamente maggiore.

Anna spiegaci il problema che ti aiutiamo
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2004, 10:14   #12
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
Cioè hai una stringa e devi intercettare il comando che rappresenta??
allora un approccio corretto è questo:

Definisci delle COSTANTI per i comandi (se un giorno dovessero cambiare cambi solo quelle e non in tutte le parti del codice).

Codice:
final static String APRI="apri"

if (tuaStringaCheContieneIlCOmando.indexOf(APRI) != -1)
 gestisciApertura();
Ilmetodo indexOf:

Quote:
public int indexOf(String str)
Returns the index within this string of the first occurrence of the specified substring. The integer returned is the smallest value k such that:
this.startsWith(str, k)

is true.
Parameters:
str - any string.
Returns:
if the string argument occurs as a substring within this object, then the index of the first character of the first such substring is returned; if it does not occur as a substring, -1 is returned.
Throws:
NullPointerException - if str is null.
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2004, 10:23   #13
anna182
Member
 
Iscritto dal: May 2004
Messaggi: 60
no uffi non riesco a spiegarmi....
allora il mio server riceve queste due stringe per esempio:

"0B00000034D4D602"
e
"Apri"
ora la prima e il codice di un ibutton la seconda e un comando...
per ora io avevo creato due if:

if(str.equals("0B00000034D4D602")){
String IDUtente = "0B00000034D4D602";
String IDPorta = "5B0000018A1B5409";
verificaAccessi(IDUtente, IDPorta);
if(str.equals("Apri")){
System.out.println("Ho ricevuto la richiesta di apertura della porta");
ApriPorta();
}

solo che strutturato cosi non va bene siccome il giorno in cui avro 200 utenti dovro mettere 200 if fatti cosi:

if(str.equals("0B00000034D4D602")){
String IDUtente = "0B00000034D4D602";
String IDPorta = "5B0000018A1B5409";
verificaAccessi(IDUtente, IDPorta);
if(str.equals("0E0000008F33A802")){
String IDUtente = "0E0000008F33A802";
String IDPorta = "5B0000018A1B5409";
verificaAccessi(IDUtente, IDPorta);

}
....ecc
quindi come faccio a far capire al server in modo semplice veloce e sicuro che la stringa fatta cosi:"0E0000008F33A802"(per esempio)
e un codice e nn un comando???
__________________
anna182
vivi come se dovessi morire domani, pensa come se non dovessi morire mai!!!
anna182 è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2004, 10:34   #14
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
Bhè qui devi decidere delle specifiche restrittive tu:

Ad esempio potresti nel caso più semplice affermare ch un comando è formato da soli caratteri alfabetici e invece in ID da caratteri alfanumerici.
In questo modo basterebbe testare, attraverso i metodi della classe Character, se esiste un digit (cifra):

Codice:
char charArray[] = quelloCheArriva.toCharArray();
	for (int i=0; i<charArray.length;i++) {
                                Character c = new Character(charArray[i]);
		if (c.isDigit())			
			return true;
			
	}	
	return false;
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2004, 10:35   #15
Angus
Senior Member
 
L'Avatar di Angus
 
Iscritto dal: Dec 2001
Città: Milano
Messaggi: 545
Quote:
Originariamente inviato da anna182
i...oppure a mettere un carattere di riconoscimento davanti alla stringa tipo i x ibutton e c x comando ma e poco furbo per quanto riguarda la sicurezza...boh voi come fareste??
in che senso poco furbo?

cmq dovresti cercare di formalizzare meglio il problema per schiarirti lle idee. Se quello che hai in mente è un vero e proprio "linguaggio" allora non puoi fare altro che studiartene la grammatica e sperare che sia riconoscibile da un parser. Altrimenti puoi usare l'approccio delle costanti cercando di mantenere ben separati anche a livello logico i comandi riconosciuti dal resto, magari utilizzando la semantica delle
espressioni regolari (vedi String.matches(String regex)).
__________________
Angus the Hunter @ Realm of magic | Angus Young @ Batracer
°SetiEmperor°| Ninja Technologies
{ qualunque cosa sia, è veloce e fa male (cit.) }
Angus è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2004, 11:00   #16
anna182
Member
 
Iscritto dal: May 2004
Messaggi: 60
purtroppo per me il mio livello di conoscienze di java e mooooolto basso e al mio prof nn vanno mai bene le mie idee per quello cercavo un vostro consiglio x distinguere le due stringhe....
__________________
anna182
vivi come se dovessi morire domani, pensa come se non dovessi morire mai!!!
anna182 è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2004, 11:14   #17
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
Queste decisioni devi prenderle tu. Una soluzione intelligente sarebbe, come hai giustamente intuito, di mettere un prefisso (mi raccomando, definito come COSTANTE. Però non sempre è una soluzione fattibile, perchè ad esempio la stringa deve avere una lunghezza massima già interamente occupata.

Soluzione ancora più intelligente, e se il tuo prof rompe mandalo qui da noi , è quella di creare 2 classi distinte per Codici e Comandi, entrambe dovranno estendere String

class Comando extends String

class Codice extends String

entrambe sono a tutti gli effetti delle Stringhe (e come tali puoi trattarle), ma al momento del test potrai chiederti:

stringaCheArriva instanceof (Comando) ???

Ovvero potrai testare il tipo di istanza
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2004, 11:14   #18
Angus
Senior Member
 
L'Avatar di Angus
 
Iscritto dal: Dec 2001
Città: Milano
Messaggi: 545
Quote:
Originariamente inviato da anna182
quindi come faccio a far capire al server in modo semplice veloce e sicuro che la stringa fatta cosi:"0E0000008F33A802"(per esempio)
e un codice e nn un comando???
ma il codice è sempre un numero esadecimale? se così fosse potresti provare con:

try {
Integer.parseInt(str, 16);
/*
se arrivo qui vuol dire che str rappresenta un numero esadecimale
quindi lo tratto come un codice valido
*/
String IDPorta = "5B0000018A1B5409";
verificaAccessi(str, IDPorta);
...
} catch (NumberFormatException ex) {
/*
non è un codice, probabilmente è un comando
quindi provo a vedere se str.equals(COSTANTE_COMANDO)
*/
...
}
__________________
Angus the Hunter @ Realm of magic | Angus Young @ Batracer
°SetiEmperor°| Ninja Technologies
{ qualunque cosa sia, è veloce e fa male (cit.) }
Angus è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2004, 11:14   #19
thefrog
Senior Member
 
L'Avatar di thefrog
 
Iscritto dal: Feb 2003
Messaggi: 3532
nn so se è una cazzata ma nn puoi identificare il tipo di stringa a priori?
tipo con due nomi di variabili diversi?

forse nn ho colto il problema...
thefrog è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2004, 11:16   #20
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
Quote:
Originariamente inviato da thefrog
nn so se è una cazzata ma nn puoi identificare il tipo di stringa a priori?
tipo con due nomi di variabili diversi?

forse nn ho colto il problema...
Hai fatto centro poco più su spiego come fare...
cn73 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni Redmi Pad 2 9.7: ampio display, economico e peso...
Peugeot Polygon Concept: ecco il futuro delle utilitarie Peugeot Polygon Concept: ecco il futuro delle ut...
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione Reno16 Pro: il compatto di OPPO punta su fotocam...
 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco Hisense 55U7SE: tuttofare e accessibile, il Min...
Kindle Scribe Colorsoft: riduce le cornici e diventa a colori, ma il prezzo è alto Kindle Scribe Colorsoft: riduce le cornici e div...
Intel brevetta XBM: la nuova memoria pun...
Film prodotti con l'IA: Disney, insieme ...
Reinstallare Windows senza chiavette o s...
Apple racconta il suo vantaggio nell'AI ...
Cisco Cloud Control, una cabina di regia...
Il software che controlla le Fab va in p...
Il settore tech è il primo bersag...
Windows 11, corretto un bug che poteva o...
X introduce nuove funzioni per i video c...
Blue Origin sta costruendo diversi lande...
DeepSeek avvia lo sviluppo di un chip pr...
Le offerte migliori ora su Amazon sugli ...
Fino a un petabit al secondo! Il piano d...
Cisco punta tutto sull'IA: tutti i 90.00...
Intel Nova Lake riporterà il supp...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 23:33.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v