//Classe String in Java

Programmazione con la JVM.

Moderator: Falcon

//Classe String in Java

Postby Falcon on Wed Sep 20, 2006 8:36 pm

Allora dato che,c'è un incongruenza con chi utilizza il C e vuole passare al Java e viceversa vorrei chiarire subito un argomento che desta molto interesse: le stringhe.Come tutti sanno le stringhe sono sequenze di caratteri e in C vengono gestite con dei vettori di caratteri o dichiarando dei vettori di vettori(non voglio dilungarmi molto sui metodi del C),invece in Java le Stringhe sone dei veri e propri oggetti che hanno,anche degli attributi.La dichiarazione di una stringa è abbastanza semplice
Code: Select all
String NomeStringa="Questà è una stringa";

Ogni volta che viene dichiarata una stringa viene posta in un area di memoria ben definita,chiamata string pool,dove una stessa stringa appare una sola volta.Ad esempio se abbiamo due stringhe Stringa1 e Stringa2 che entrambe contengono "Ciao",l'area di memoria destinata alla memorizzazzione della stringa è una sola.
I metodi che è possibile passare alla classe String sono:
1)Equals(uguaglianza tra stringhe)
2)Length (lunghezza di una stringa
3)charAt(n) (Carattere alla posizione n)
4)IndexOf(indica la posizione di una sottostringa)
5)startsWith() (valore booleano che indica se la stringa parte con la parola o lettera indicata
6)substring(n)(restituisce la sottostringa puntata da n)
7)concat (concatenazione tra stringhe)
Allora ora,passiamo alla spiegazione dei vari metodi:

1)Uguaglianza tra stringhe "equals()" VARIABILE: BOOLEANA
Code: Select all
boolean a;
a=String1.equals(String2);

Restituisce vero se la prima è uguale alla seconda o falso se sono disuguali;

2)Lunghezza della stringa ".length()" VARIABILE:INTERA
Code: Select all
int c;
c=String1.length();

La variabile C conterrà la lunghezza effettiva della stringa

3)Carattere alla posizione ".charAt" VARIABILE: CARATTERE
Code: Select all
String Prova="Ciao"
char A=String1.charAt(2);

La variabile A conterrà la 'a' perchè la numerazione dei caratteri avviene come nei vettori,cioè il primo elemento ha indice 0;

4)Indice di.. "indexOf()" VARIABILE:INTERA
Code: Select all
String Prova="Pippo"
int P=String.indexOf("po")

La variabile P conterrà 3,se non viene trovato nulla la variabile conterrà -1;

5)Inizia con,finisce con"startsWith()"&"endsWith()" VARIABILE:BOOLEANA
Code: Select all
String Prova="Pippo";
boolean E=String.startsWith("Pi");

La variabile booleana sarà vera. C'è anche il comando endsWith() che ha la stassa funzione solo che controlla la fine della stringa.

6)Sottostring ".substring()" VARIABILE:STRINGA
Code: Select all
String Prova="Mario Rossi";
String Sub=Prova.substring(5);

Il metodo substring riceve un intero e,in questo caso la stringa Sub conterrà "Rossi".

7)Concatenazione fra stringhe ".concat()" VARIABILE:STRINGA
Code: Select all
String S1="Ciao";
String S2="Mondo";
String S3=S1.concat(S2);
//oppure
String S3=S1+S2;

Il metodo concat() viene utilizzato per concatenare due stringhe.Si può anche utilizzare il "+" al posto del concat().

Le stringhe(questa è una considerazione personale)sono più facili da gestire in Java...comunque non vi ho messo tutti i metodi che ha la classe string ma,vi ho elencato solo i più importanti....se siete interessati fatemi sapere!
Per chiarimenti e delucidazioni....postate qui!
Ciau alla prossima 8)
Last edited by Falcon on Sat Sep 23, 2006 6:55 am, edited 1 time in total.
Linux Slackware User
User avatar
Falcon
Java Programmer
 
Posts: 542
Joined: Sat Jul 08, 2006 8:38 am

//Classe String in Java

Sponsor

Sponsor


Postby iceseyes on Thu Sep 21, 2006 2:29 am

Ottima spiegazione! due note: la classe String non ha (solo) attributi, ma metodi (quelli di cui parli sono metodi).

In java ogni classe (quindi ogni cosa) è figlia di Object. Questa superclasse contiene anche il metodo equals(). Questo significa che ogni oggeto può essere confrontato con equals.

la differenza fra equals e == è la seguente: il primo dice i due oggetti che sto confrontando hanno lo stesso VALORE, il secondo invece risponde alla domanda "sono lo STESSO OGGETTO", cioè puntano alla stessa locazione di memoria?

per intenderci

Code: Select all
String unaStringa = "Io sono una stringa";

if ("Io sono una stringa".equals(unaStringa)
    System.out.println("Questo viene stampato")

if ("io sono una stringa" == unaStringa)
    System.out.println("Questo non viene stampato");
Ci sono solo 10 tipi di persone al mondo: chi capisce il binario e chi no!
User avatar
iceseyes
Help Programmer
 
Posts: 137
Joined: Sun Jul 02, 2006 5:12 pm

Postby Falcon on Thu Sep 21, 2006 7:02 am

Si lo sò che quello di cui parlo sono metodi e non attributi! :lol:
Linux Slackware User
User avatar
Falcon
Java Programmer
 
Posts: 542
Joined: Sat Jul 08, 2006 8:38 am

Postby iceseyes on Thu Sep 21, 2006 1:07 pm

volevo solo corregge l'errore per gli altri ;)

anche degli attributi,cioè dei sottoprogrammi
Ci sono solo 10 tipi di persone al mondo: chi capisce il binario e chi no!
User avatar
iceseyes
Help Programmer
 
Posts: 137
Joined: Sun Jul 02, 2006 5:12 pm

Postby Ghost on Fri Sep 22, 2006 11:17 pm

gli attributi so diventati sottoprogrammi :lol: :lol: :lol: .

Va beh dai,...tutti possiamo sbagliare :P
Nella fica mi ci fico!
User avatar
Ghost
Algoritmo
 
Posts: 140
Joined: Sat Jul 29, 2006 4:39 pm


Return to Java

Who is online

Users browsing this forum: No registered users and 1 guest

cron