Récupérer les informations d’une variable String
String est une variable d’un type particulier, puisqu’elle est composée d’un assemblage de lettre. On peut la manipuler et l’interroger à travers une série d’opérateurs.
Nombre de caractères d’une variable String
Le nombre de caractères d’une variable String s’obtient par la méthode length(), comme ceci :
String phrase="Voici une chaine de caractère";
int nb_lettres=phrase.length();
println( nb_lettres );Sélectionner un caractère dans la chaine
On peut obtenir la valeur d’un caractère par la méthode charAt() comme ceci
String phrase="Voici une chaine de caractère";
char lettre=phrase.charAt(3);
println(lettre); // on obtient "c"La variable char
char est une variable qui peut recevoir un caractère. On la code entre simple guillemets (ou apostrophe). Si on tente de stocker u
char lettre='g';
char lettre2='+';Valeur numérique d’une variable char
Les variables char sont un peu particulières, puisqu’elles sont équivalentes à un chiffre :
char t='a';
if(t == 97){ println("le caractère 'a' est aussi 97"); }Cette caractéristique permet de transformer les caractères en chiffre. Ainsi, la valeur du a minuscule est 97, le z minuscule est 122, la valeur du A majuscule est 65, Z majuscule est 90. Les autres caractères, comme les chiffres et les opérateur, enfin tout ce qui s’affiche sous la forme de caractère (même les espaces et le tab, et même encore le retour en arrière ou delete) a son propre code.
Utiliser les valeurs numériques de char
Voici quelques exemples d’utilisation des valeurs numériques de char :
Dessiner des barres verticales :
// dessiner des barres sur base d'une phrase
String mot="Voici une chaine de caractère avec un a et un z";
// a est 97, z est 122
// A est 65, Z est 90
void setup(){
size(600,600);
fill(0);
noStroke();
}
void draw(){
background(255);
beginShape();
for(int i=0; i<mot.length(); i++){
// tout transformer en lowercase,
// retirer 96 pour que a soit 1, b soit 2, etc.
int chiffre=char(mot.toLowerCase().charAt(i))-96;
if(chiffre < 0 ) { chiffre=26; fill(230); } else { fill(0); }
rect((width/mot.length())*i,0,width/mot.length(),(height/26)*chiffre);
}
endShape();
noLoop();
}Dessiner avec vertex() :
// dessiner des barres sur base d'une phrase
// https://processing.org/tutorials/text/
String mot="J'essaie de faire un truc";
// a est 97, z est 122
// A est 65, Z est 90
void setup(){
size(600,600);
fill(0);
noStroke();
}
void draw(){
background(255);
translate(width/2,height/2);
beginShape();
for(int i=0; i<mot.length(); i++){
// tout transformer en lowercase,
// retirer 96 pour que a soit 1, b soit 2, etc.
int chiffre=char(mot.toLowerCase().charAt(i))-96;
// mettre tous les caractères spéciaux en 0
if(chiffre < 0 || chiffre > 122) { chiffre=0; }
// calcul de l'angle
float angle=(TWO_PI/mot.length())*i;
// calcul de la taille (de 0 à 45% de la taille de la fenêtre)
float taille=map(chiffre,1,26, 0, width*0.45);
// dessin du point
vertex(sin(angle)*taille,cos(angle)*taille);
}
endShape(CLOSE);
noLoop();
}Dessiner avec curveVertex() :
// dessiner des barres sur base d'une phrase
// https://processing.org/tutorials/text/
String mot="J'essaie de faire un truc";
// a est 97, z est 122
// A est 65, Z est 90
void setup(){
size(600,600);
fill(0);
noStroke();
}
void draw(){
background(255);
translate(width/2,height/2);
beginShape();
for(int i=0; i<mot.length(); i++){
// tout transformer en lowercase,
// retirer 96 pour que a soit 1, b soit 2, etc.
int chiffre=char(mot.toLowerCase().charAt(i))-96;
// mettre tous les caractères spéciaux en 0
if(chiffre < 0 || chiffre > 122) { chiffre=0; }
// calcul de l'angle
float angle=(TWO_PI/mot.length())*i;
// calcul de la taille (de 0 à 45% de la taille de la fenêtre)
float taille=map(chiffre,1,26, 0, width*0.45);
// dessin du point
curveVertex(sin(angle)*taille,cos(angle)*taille);
}
endShape(CLOSE);
noLoop();
}
void keyTyped() {
// The variable "key" always contains the value
// of the most recent key pressed.
if ((key >= 'A' && key <= 'z') || key == ' ') {
char letter = key;
mot = mot + key;
// Write the letter to the console
println(key);
loop();
}
}