Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
defman dummy mioche

Inscrit le: 27 Mar 2004 Messages: 1
|
Posté le: Sam Mar 27, 2004 12:52 am Sujet du message: correcteur de frappe:je bloque aidez moi!!! |
|
|
voici la consigne
Ecrire un programme qui corrige la typographie d'un fichier, c'est- a-dire ecrit un fichier
corrige a partir d'un fichier de depart en respectant les regles suivantes :
(a) une phrase commence par une majuscule
(b) les symboles :, ;, ? et ! sont suivis et precedes par un espace
(c) les symboles . et , sont suivi par un espace, mais ne sont jamais precedes par un
espace.
On aura interet a utiliser un StringBuffer pour accelerer les traitements
import java.io.*;
import javax.swing.*;
public class Correcteur{
public static void main(String[] args) throws IOException {
JFileChooser chooser = new JFileChooser();
int choix;
do {
choix=chooser.showSaveDialog(null);
} while (choix!=JFileChooser.APPROVE_OPTION);
FileWriter ecrivainBase=new FileWriter(chooser.getSelectedFile());
PrintWriter ecrivain=new PrintWriter(new BufferedWriter(ecrivainBase));
BufferedReader lecteur=new BufferedReader(new FileReader("Correcteur.txt"));
String s=lecteur.readLine();
System.out.println(s.charAt(0));
StringBuffer sb1=new StringBuffer();//creation d'un stringbuffer vide
// dans laquelle on reecrit la chaine s corrigée
//traitement de la première lettre du fichier
int i=0;
char e=s.charAt(i);
while (!Character.isLetter(e)){//tant que le ième caractère n'est pas une lettre on
//continue de parcourir les caractere de la chaine correspondant à la première ligne du fichier
i++;
}
e=Character.toUpperCase(e);//qd le ième caractere est une lettre, c'est à dire qd on
//arrive à la première lettre du fichier on la met sous forme majuscule
sb1.setCharAt(i,e);//puis on la remplace avec l'ancienne qui etait en minuscule
while (s!=null){
for(int j=1;j<s.length();j++){
char c=s.charAt(j);
System.out.println(c);
char d=s.charAt(j-1);
sb1.append(c);
System.out.println(sb1);
if (c==':')
if (d!=' ')
{
sb1.setCharAt(j,' ');
sb1.append(": ");
}
if (c=='?')
if (d!=' ')
{
sb1.setCharAt(j,' ');
sb1.append("?");
}
if (c=='!')
if (d!=' ')
{
sb1.setCharAt(j,' ');
sb1.append("!");
}
if (c==';')
if (d!=' ')
{
sb1.setCharAt(j,' ');
sb1.append(";");
}
if (c=='.')
if (d==' ')
{
sb1.setCharAt(j-1,'.');
sb1.setCharAt(j,' ');
}
if (c==',')
if (d==' ')
{
sb1.setCharAt(j-1,',');
sb1.setCharAt(j,' ');
}
if (Character.isLetter(c))
if (d=='.')
{
sb1.setCharAt(j,' ');
c=Character.toUpperCase(c);
sb1.append(c);
}
if (d==',')
{
sb1.setCharAt(j,' ');
sb1.append(c);
}
}
s=lecteur.readLine();
}ecrivain.println(sb1);
lecteur.close();
ecrivain.close();
}
}
pas de probleme a la compilation mais erreur d'execution! apparemment il y a un pb d'indice mais je ne vois pas pourquoi! |
|
Revenir en haut |
|
 |
akio dummy mioche


Inscrit le: 03 Avr 2004 Messages: 4 Localisation: Toulouse / La Rochelle / Angoulême
|
Posté le: Sam Avr 03, 2004 7:25 pm Sujet du message: |
|
|
Pour y voir + clair, peut être peut tu récupérer la pile d'éxécution et le type de l'exception? _________________ Un clavier azerty en vaut deux |
|
Revenir en haut |
|
 |
|
|
Vous ne pouvez pas poster de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum
|
|