Ces variables sont des références; l'espace mémoire nécessaire pour coder la suite des objets des tableaux se réserve avec le mot clé new et l'opérateur [].
int [ ] tab1; int tab1[ ];
Contrairement au langage C , il n'est pas nécessaire que la taille du tableau soit textuellement une constante. Comme il s'agit d'une allocation dynamique, la taille peut être une expression dont la valeur est un entier positif ou nulle.
tab1 = new int [ 200 ] ;
tab2 = new int [ 2 * nbre + 3];
Les éléments d'un tableau peuvent être de n'importe quel type : type primitif ou référence. En particulier, on peut très bien définir un tableau de références vers une classe abstraite. De même, les éléments d'un tableau peuvent être des objets qui implante une interface.
Dans le premier cas, on initialisera le tableau avec des références vers objets d'une classe dérivée de la classe Forme. Quant aux deuxième cas, n'importe quel objet d'une classe implantant l'interface Runnable peut être affecté aux éléments du tableau.
Forme [] tab1 = new Forme[10]; Runnable [] tab2 = new Runnable[10];
Les éléments d'un tableau peuvent être indicés par un int, short, byte, ou char. Par contre, l'indice ne peut être un long; si c'est le cas, une erreur de compilation est engendrée.
Lors de l'accès aux éléments d'un tableau, Java fait la vérification de débordement. Lorsque l'indice du tableau est en dehors des limites des bornes du tableau, l'erreur IndexOutOfBoundsException est lancée.
Il n'est évidemment pas possible de modifier arbitrairement la valeur de ce champ : c'est un champ final qui s'initialise à la création du tableau.
for (int i =0; i < tab1.length ; i++) tab1[ i ] = i ;
Attention! Définir un tableau d'objets ne définit qu'un tableau de références. Les objets devront être alloués ultérieurement.
L'initialisation d'un tableau peut évidement se faire lors de sa définition et ce, comme en C , à l'aide des accolades :
Date [ ] tabDate = new Date [ 3 ]; tabDate[ 0 ] = new Date(15,9,57); tabDate[ 1 ] = new Date(28,5,57); tabDate[ 2 ] = new Date(19,3,91);
int [ ] tab = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 } ; Date [ ] tabDate = { new Date(15,9,57), new Date(28,5,57), new Date(19,3,91) } ;
int [ ] [ ] mat = new int [ 5 ] [ 5 ]; Date [ ] [ ] matDate = new Date [ 5 ] [ 5 ];
Comme pour les tableaux unidimentionnels, il est possible de créer un tableau multidimentionels par initialisation :
int [ ] [ ] mat = { {11,12,13,14,15}, {21,22,23,24,25}, {31,32,33,34,35}, {41,42,43,44,45}, {51,52,53,54,55} }
Dans beaucoup de cas, les chaînes de caractères que l'on crée sont des objets constants. Le compilateur Java transforme automatiquement les constantes de type chaînes (voir 3.5.5) de caractères en objet de type String. On peut également créer explicitement un objet de type String avec un des constructeurs de cette classe.
Outre les constructeurs, la classe String fournit les méthodes pour la
String x = "coucou"; String y = new String("Coucou"); String z = x + y;
public final class String extends Object implements Serializable, Comparable { public String() public String(String value) public String(char[] value) public String(char[] value, int offset, int count) public String(byte[] ascii, int hibyte, int offset, int count) public String(byte[] ascii, int hibyte) public String(byte[] bytes, int offset, int length, String enc) throws UnsupportedEncodingException public String(byte[] bytes, String enc) throws UnsupportedEncodingException public String(byte[] bytes, int offset, int length) public String(byte[] bytes) public String(StringBuffer buffer) public int length() public char charAt(int index) public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) public void getBytes(int srcBegin, int srcEnd, byte[] dst, int dstBegin) public byte[] getBytes(String enc) throws UnsupportedEncodingException public byte[] getBytes() public boolean equals(Object anObject) public boolean equalsIgnoreCase(String anotherString) public int compareTo(String anotherString) public int compareTo(Object o) public boolean regionMatches(int toffset, String other, int ooffset, int len) public boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len) public boolean startsWith(String prefix, int toffset) public boolean startsWith(String prefix) public boolean endsWith(String suffix) public int hashCode() public int indexOf(int ch) public int indexOf(int ch, int fromIndex) public int lastIndexOf(int ch) public int lastIndexOf(int ch, int fromIndex) public int indexOf(String str) public int indexOf(String str, int fromIndex) public int lastIndexOf(String str) public int lastIndexOf(String str, int fromIndex) public String substring(int beginIndex) public String substring(int beginIndex, int endIndex) public String concat(String str) public String replace(char oldChar, char newChar) public String toLowerCase(Locale locale) public String toLowerCase() public String toUpperCase(Locale locale) public String toUpperCase() public String trim() public String toString() public char[] toCharArray() public static String valueOf(Object obj) public static String valueOf(char[] data) public static String valueOf(char[] data, int offset, int count) public static String copyValueOf(char[] data, int offset, int count) public static String copyValueOf(char[] data) public static String valueOf(boolean b) public static String valueOf(char c) public static String valueOf(int i) public static String valueOf(long l) public static String valueOf(float f) public static String valueOf(double d) public String intern() }
Ce constructeur permet de créer un objet de type String vide.public String (String valeur)
Ce constructeur permet de créer un nouvel objet de type String qui est une copie de l'objet String passé en argument.public String (char[ ] valeur) throws NullPointerException
Ce constructeur construit un nouvel objet de type String par recopie des éléments du tableau de caractères passé en argument. Comme il s'agit de recopie, une modification des éléments du tableau postérieure à la création de cet objet String ne le modifiera pas.public String (char[ ] valeur, int offset, int nombre) throws NullPointerException, IndexOutOfBoundsExceptionSi le tableau est null alors l'exception NullPointerException est lancée.
Ce constructeur construit un nouvel objet de type String par recopie des éléments d'un sous tableau du tableau de caractères passé en argument. Le sous tableau à recopier commence à l'indice offset et est de taille nombre. Comme il s'agit de recopie, une modification des éléments du tableau postérieure à la création de cet objet String ne le modifiera pas.public String (byte[ ] valeur, int hibyte) throws NullPointerExceptionSi le tableau est null alors l'exception NullPointerException est lancée.
L'exception IndexOutOfBoundsException est lancée quand
- offset est négatif,
- nombre est négatif,
- offset+nombre est plus grand que valeur.length.
Ce constructeur construit un nouvel objet de type String par recopie des éléments du tableau de caractères passé en argument. La transformation d'un élément b du tableau de byte en caractère c est faite en complétant les 8 bits de poids fort l'argument hibyte d'après la formule :public String (byte[ ] valeur, int hibyte, int offset, int nombre) throws NullPointerException, IndexOutOfBoundsExceptionc == ((hibyte & 0xff}) << 8) | (b & 0xff)Si le tableau est null alors l'exception NullPointerException est lancée.
Ce constructeur construit un nouvel objet de type String par recopie des éléments d'un sous tableau du tableau de caractères passé en argument. Le sous tableau à recopier commence à l'indice offset et est de taille nombre. La transformation d'un élément b du tableau de byte en caractère c est faite en complétant les 8 bits de poids fort l'argument hibyte d'après la formule :public String (StringBuffer buffer) throws NullPointerExceptionc == ((hibyte & 0xff}) << 8) | (b & 0xff)Si le tableau est null alors l'exception NullPointerException est lancée.
L'exception IndexOutOfBoundsException est lancée quand
- offset est négatif,
- nombre est négatif,
- offset+nombre est plus grand que valeur.length.
Ce constructeur construit un nouvel objet de type String par recopie des caractères de l'objet StringBuffer passé en argument.Si l'objet StringBuffer est null alors l'exception NullPointerException est lancée.
public boolean equals (Object o)
Retourne true si et seulement siCette méthode est une redéfinition de la méthode equals de la classe Object.
- o n'est pas null
- l'objet sur lequel s'applique cette méthode est une chaîne identique à o.
public boolean equalsIgnoreCase (String s)
Retourne true si et seulement si
- s n'est pas null
- l'objet sur lequel s'applique cette méthode est une chaîne identique (aux majuscules/minuscules près) à s.
public int compareTo (String s) throws NullPointerException
Cette méthode rend
- 0 : si les chaînes sont identiques
- un entier négatif : si l'argument s est lexicographiquement plus plus petit que l'objet sur lequel s'applique la méthode.
- un entier positif : si l'argument s est lexicographiquement plus plus grand que l'objet sur lequel s'applique la méthode.
Si s est null, l'exception NullPointerException est lancée.
public boolean regionMatches (int toffset, String other, int ooffset, int len)
A TERMINER
Convertit une chaîne de caractères en minuscules.public String toUpperCase ()
Convertit une chaîne de caractères en majuscules.public String replace (char oldChar, char newChar)
Retourne une instance de String où chaque occurence de oldChar est remplacée par newChar.public char[] toCharArray ()
Convertit un String en un tableau de caractères.public void getChars (int srcBegin, int srcEnd, char dst[], int dstBegin) throws NullPointerException, IndexOutOfBoundsException
Recopie la sous chaîne comprise srcBegin et srcEnd dans le tableau dst à partir de l'indice dstBegin.
public static String valueOf (type obj)
Retourne une représentation sous forme de String de l'objet obj.
Retourne l'indice de la première occurrence du caractère ch.public int indexOf (int ch, int fromIndex)
Retourne l'indice supérieure à fromIndex de la première occurrence du caractère ch.public int indexOf (String str) throws NullPointerException
Retourne l'indice de la première occurrence de la chaîne str.public int indexOf (String str, int fromIndex) throws NullPointerException
Retourne l'indice supérieure à fromIndex de la première occurrence de la chaîne str.public int lastIndexOf (int ch)
Retourne l'indice de la dernière occurrence du caractère ch.public int lastIndexOf (int ch, int fromIndex)
Retourne l'indice supérieure à fromIndex de la dernière occurrence du caractère ch.public int lastIndexOf (String str) throws NullPointerException
Retourne l'indice de la dernière occurrence de la chaîne str.public int lastIndexOf (String str, int fromIndex) throws NullPointerException
Retourne l'indice supérieure à fromIndex de la dernière occurrence de la chaîne str.
public String substring (int beginIndex)
retourne la sous chaîne commençant à l'indice beginIndex.public String substring (int beginIndex, int endIndex)
retourne la sous chaîne compris entre les indices beginIndex et endIndex.public String concat (String str) throws NullPointerException
Retoune un nouveau String résultat de la concaténation de str à l'objet sur lequel s'applique cette méthode.
public char charAt (int index)
Retourne le caractère à l'indice index.public boolean startsWith (String suffix) throws NullPointerException
Retourne true si la chaîne commence par la chaîne suffixe.public boolean startsWith (String suffix, int toffset) throws NullPointerException
Retourne true si la sous chaîne débutant à l'indice toffset commence par la chaîne suffixe.public boolean endsWith (String suffix) throws NullPointerException
Retourne true si la chaîne se termine par la chaîne suffixe.
Supprime les espaces en début et en fin de chaîne.
Les objets de la classe String sont des objets constants; la chaîne de caractères qu'elles codent ne peuvent être modifiées. Si l'on veut utiliser des chaînes de caractères modifiables, on devra utiliser des objets de la classe StringBuffer.
Un objet de type StringBuffer a un espace de stockage à la création qui est automatiquement redimensionné en fonction des besoins.
public final class StringBuffer extends Object implements Serializable { public StringBuffer() public StringBuffer(int length) public StringBuffer(String str) public int length() public int capacity() public void ensureCapacity(int minimumCapacity) public void setLength(int newLength) public char charAt(int index) public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) public void setCharAt(int index, char ch) public StringBuffer append(Object obj) public StringBuffer append(String str) public StringBuffer append(char[] str) public StringBuffer append(char[] str, int offset, int len) public StringBuffer append(boolean b) public StringBuffer append(char c) public StringBuffer append(int i) public StringBuffer append(long l) public StringBuffer append(float f) public StringBuffer append(double d) public StringBuffer insert(int offset, Object obj) public StringBuffer insert(int offset, String str) public StringBuffer insert(int offset, char[] str) public StringBuffer insert(int offset, boolean b) public StringBuffer insert(int offset, char c) public StringBuffer insert(int offset, int i) public StringBuffer insert(int offset, long l) public StringBuffer insert(int offset, float f) public StringBuffer insert(int offset, double d) public StringBuffer reverse() public String toString() }
Construit une instance de StringBuffer d'une capacité de 16 caractères et qui ne contient aucun caractère.public StringBuffer (int length) throws NegativeArraySizeException
Construit une instance de StringBuffer d'une capacité de length caractères et qui ne contient aucun caractère.public StringBuffer (String str)
Construit une instance de StringBuffer d'une capacité de 16+taille(str) caractères et qui est rempli avec les caractères de l'objet str. C'est la conversion d'un String en StringBuffer.public String toString ()
Retourne un objet String: conversion du StringBuffer en String.public int length ()
Retourne le nombre de caractères présents dans l'objet StringBuffer.public void setLength (int l) throws IndexOutOfBoundsException
Etend en remplissant du caractères '0000' ou tronque le StringBuffer de sorte que sa taille soit égale à l.public int capacity ()
Retourne la taille de la zone allouée pour l'objet.public void ensureCapacity (int minimumCapacity)
public char charAt (int index) throws IndexOutOfBoundsException
A TERMINER
Retourne le caractère à l'indice index.public void setCharAt (int index, char ch) throws IndexOutOfBoundsException
Le caractère ch devient le caractère d'indice index.public void getChars (int srcBegin, int srcEnd, char[] dst, int dstBegin) throws NullPointerException, IndexOutOfBoundsException
Recopie la sous chaîne comprise srcBegin et srcEnd dans le tableau dst à partir de l'indice dstBegin.
public StringBuffer append (Object obj)
Concatène la représentation textuelle de l'objet obj.public StringBuffer append (String str)
Concatène str à l'instance de StringBuffer sur laquelle s'applique cette méthode.public StringBuffer append (char[] str)
Concatène la représentation textuelle du tableau de caractères str.public StringBuffer append (char[] str, int offset, int len) throws NullPointerException, IndexOutOfBoundsException
Concatène la sous chaîne de caractères str.Recopie la sous chaîne comprise srcBegin et srcEnd dans le tableau dst à partir de l'indice dstBegin.
public StringBuffer insert (int offset, Object obj) throws StringIndexOutOfBoundsException
Insère la representation textuelle de obj à l'indice offset.public StringBuffer insert (int offset, char[] str) throws StringIndexOutOfBoundsException
Insère la représentation textuelle du tableau de caractères str à l'indice offset.
public StringBuffer reverse ()
Remplace la suite des caractères du StringBuffer par sa représentation miroir.