TD 4 - Les chaînes de caractères

Exercice 1: Saisie d'une chaîne

class TestString{
    public static void main( String[] sArgs) throws Exception {

        System.out.print("Entrez votre nom : ");
        char[] cTab=new char[20];
        int i=0;
        do{
            cTab[i]=(char)System.in.read();
            i++;
        }
        while (cTab[i-1]!='\n');
        System.out.println("Bonjour "+new String(cTab));
    }
}

Exercice 2: Affichage d'une chaîne

import java.io.*;
class TestString{

   public static void main( String[] sArgs) throws Exception{
       System.out.print("Entrez votre nom : ");
     
/* ici, une façon plus élégante de lire une entrée clavier: on utilise un BufferedReader qui est instancié à partir d'un Reader ( les InputStreamReader sont des Reader ). Cet InputStreamReader est instancié avec un InputStream connu:  la propriété statique 'in' de la classe System qui désigne le clavier */
       InputStreamReader isr=new InputStreamReader(System.in);
       BufferedReader bf=new BufferedReader(isr);
       String s=bf.readLine();
        for (int i=0 ;i<s.length() ;i++){

              System.out.println(s.substring(0,i));
        }
    }
}

Exercice 3 : Les StringBuffer

1- Instanciez un StringBuffer à partir d'une chaîne valant "toto"

StringBuffer sb=new StringBuffer("toto");

2- Modifiez cette chaîne en remplaçant les 'o' par des 'i'.

for (int i=0;i<sb.length();i++){
   if (sb.charAt(i) == 'o' ){
      sb=sb.replace(i,i+1,"i"); //attention, c'est le String "i" et non le char 'i'
   }
}

3- Affichez la nouvelle chaîne sous la forme : "Nouvelle chaîne =" et la nouvelle chaîne.

System.out.println("Nouvelle chaîne = "+sb.toString());


Exercice 4 : Les StringTokenizer

1- Utilisez la classe StringTokenizer à partir d'une chaîne valant "#1=toto#2=titi#3=tata" avec les séparateurs appropriés pour reconstituer et afficher les valeur de toto, titi et tata:

StringTokenizer st1=new StringTokenizer("#1=toto#2=titi#3=tata","#");
while ( st1.hasMoreTokens() ){
   StringTokenizer st2=new StringTokenizer(st1.nextToken(),"=");
   System.out.println(st2.nextToken()+":"+st2.nextToken());
}