class java.lang.Str

class java.lang.Str - Programmation

Marsh Posté le 22-04-2001 à 16:54:10    

bonjour,
j'ai releve l'erreur suivante:
 
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
 
 
public class Normalisation extends HttpServlet {
 
 public void doPost( HttpServletRequest requete,
      HttpServletResponse reponse)
      throws IOException, ServletException {
 
  String texteBrut = requete.getParameter("texte" );
  String texteNormalisé = normalise(texteBrut);
 
  reponse.setContentType("text/html" );
  PrintWriter pw = reponse.getWriter();
 
  pw.println("<html>" );
  pw.println("<head>" );
  pw.println("<title>Normalisation</title>" );
  pw.println("</head>" );
  pw.println("<body bgcolor='white'>" );
  pw.println("<h2 align='center'>Normalisation de texte</h2>" );
  pw.println("<p align='center'>Texte brut : <b>" + texteBrut + "</b>" );
  pw.println("<p align='center'>Texte normalisé : <b>" );
  pw.println(texteNormalisé + "</b>" );
  pw.println("</body>" );
  pw.println("</html>" );
 }
 
 private String normalise(String chaîne) {
 
  StringBuffer buffer = new StringBuffer(chaîne.length());
  boolean espace = true;
  char car = ' ';
  for (int index1 = 0; index1 < chaîne.length(); index1++) {
   car = chaîne.charAt(index1);
   if (car == ' ') {
    if (espace)
     continue;
    espace = true;
    buffer.append('-');
   }
   else {
    if (car == '\'') {
     if (espace) {
      buffer.deleteCharAt(buffer.length() - 1);
     }
     espace = true;
    }
    else {
     espace = false;
    }
    buffer.append(car);
   }
  }
  if (espace) {
   buffer.deleteCharAt(buffer.length() - 1);
  }
  return buffer.toString();
 }
}
 
 
------------------------------------
 
C:\jakarta-tomcat\webapps\ROOT\WEB-INF\classes>javac Normalisation.java
Normalisation.java:48: Method deleteCharAt(int) not found in class java.lang.Str
ingBuffer.
                                                buffer.deleteCharAt(buffer.lengt
h() - 1);
                                                                   ^
Normalisation.java:59: Method deleteCharAt(int) not found in class java.lang.Str
ingBuffer.
                        buffer.deleteCharAt(buffer.length() - 1);
                                           ^
2 errors
 
 
----------------------------------
 
un import de java.lang.* ne change rien.
 
Quel est le probleme ?
Merci

Reply

Marsh Posté le 22-04-2001 à 16:54:10   

Reply

Marsh Posté le 22-04-2001 à 19:24:58    

2 trucs:  
1)tu mets le servlet.jar sous \jre\lib ?
J'ai essayé comme ça mais ça voulait pas compiler, alors j'ai mis le dossier javax/servlet inclu dans le .jar dans le rt.jar (sous javax toujours) et là ça fonctionnait, mais je pige pas pkoi la 1ère méthode ne marche pas...
2)Ton bout de code compile chez moi (jdk 1.3 et servlet 2.3)

Reply

Marsh Posté le 22-04-2001 à 19:59:57    

je compile avec le jsdk 2.1 et le jdk 1.1.8
mon servlet.jar est sous C:\jsdk2.1
 
ça marche pas :(

Reply

Marsh Posté le 22-04-2001 à 21:24:32    

tu bosses sous quel OS?
t'as quoi comme path et classpath?

Reply

Marsh Posté le 22-04-2001 à 22:09:39    

OS: windows 2000
PATH: C:\jdk1.1.8\bin\
CLASSPATH=C:\jdk1.1.8\bin\..\classes;C:\jdk1.1.8\bin\..\lib\classes.zip;

Reply

Marsh Posté le 22-04-2001 à 22:25:36    

A ta place je mettrais à jour la jdk (version 1.3 now), tu as regarder si dans les api de la version 1.1.8 la méthode que tu utilises est implémentée?
 
PS: avec la jdk 1.3 pas besoin de classpath
PS2:je pige toujours pas pkoi il n'accèpte pas mon fichier servlet.jar sous /jre/lib, alors que si je le décompresse dans ce rep, ça marche.

Reply

Marsh Posté le 23-04-2001 à 00:03:46    

C'est normal, il n'y a pas de deleteCharAt dans la classe java.lang.StringBuffer en JDK 1.1. Voir le javadoc de la classe StringBuffer sur le site de JavaSoft.
 
Et manifestement, il n'y a rien pour supprimer des caractères d'un StringBuffer en JDK 1.1. A ta place, je suivrai le conseil qu'a donné Jade : passer au moins en JDK 1.2. A moins bien sûr que tu aies des contraintes fortes t'obligeant à rester en JDK 1.1 (genre tu écris une applet pour tout browser)...
 
Dans ce cas, je ne vois pas d'autre choix que de recréer un deuxième StringBuffer à partir du premier, qui ne contiendrait pas le caractère à supprimer.

Reply

Marsh Posté le 23-04-2001 à 07:00:50    

Merci,
finalement ma question n'etait pas aussi nulle que je le pensais.
Merci à vous deux pour votre aide.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed