2010-02-04 4 views
2

donc, encore une fois, en raison de la limitation de api de mûre, j'ai 2 questions:méthode blackberry pour remplacer les chaînes?

  1. la réponse que je reviens de mes IOUtilities.streamToBytes (httpInput); appel contient "& lt;" personnages. alors quelle classe/méthode blackberry puis-je utiliser pour remplacer mon "& lt;" avec "<"? il y a SEULEMENT 1 méthode replace() dans la classe String et cette méthode ne peut remplacer qu'un caractère par un autre caractère. Encore une fois, puisqu'il s'agit d'un projet blackberry, je n'ai accès à rien de plus que java 1.4

  2. la réponse que je reçois aussi de mon IOUtilities.streamToBytes (httpInput); appel commence avec la réponse de savon habituelle "<? xml version =" 1.0 "encoding =" utf-8 "? > chaîne xmlns =" ​​http://www.mydomain.com ">". n'importe quelle classe de blackberry/méthode que je peux utiliser pour dire au programme de retourner SEULEMENT tout entre "<? xml version =" 1.0 "encoding =" utf-8 "? > < chaîne xmlns =" ​​http://www.mydomain.com ">" ET "</string >"? Encore une fois, merci à vous tous pour votre aide.

encore une fois, merci à vous tous pour votre aide. très appréciée. Je commence à apprendre que le développement dans l'environnement Blackberry est parfois un peu fastidieux car certaines classes Java (qui peuvent faciliter le codage) ne sont pas disponibles.

+0

S'il vous plaît nous dire les versions J2ME pour votre Blackberry. Ce sont dans Paramètres/Options/À propos de. Par exemple, le mien est: CLDC 1.1 avec MIDP 2.0. –

+0

J'utilise eclipse galileo et j'utilise Blackberry JRE 5.0.0. btw, Eclipse définit le "niveau de conformité par défaut" à 1.4. si je l'ai mis à 1.5 et 1.6, je commence à obtenir des erreurs "NoClassDefinition trouvé" au tout début de l'application. – sexitrainer

+0

Cela ne nous dit pas les versions de J2ME (config et profile) que vous ciblez. La combinaison de configuration et de profil dicte quelles API vous avez à votre disposition; par exemple, Personal Profile 1.0 est basé sur Java 1.2, tandis que Personal Profile 1.1 est basé sur Java 1.4. Cela signifie que PP 1.1 est un J2SE 1.4 dépouillé - et vous serez surpris de la quantité manquante. –

Répondre

5

Ce que vous rencontrez est forcé d'utiliser un profil J2ME basé sur une version antérieure de J2SE.

J'ai une méthode d'utilitaire de remplacement pour les chaînes que j'ai écrites en ciblant des plates-formes antérieures, qui pourraient vous être utiles. Mais notez que ce que vous voulez vraiment, c'est un analyseur XML; le remplacement des chaînes ne fonctionnera que si le XML est très simple.

static public String replace(String val, String fnd, String rpl, boolean igncas) { 
    int         fl=(fnd==null ? 0 : fnd.length()); 

    if(fl>0 && val.length()>=fl) { 
     StringBuffer     sb=null;        // string buffer 
     int        xp=0;         // index of previous fnd 

     for(int xa=0,mi=(val.length()-fl); xa<=mi; xa++) { 
      if(val.regionMatches(igncas,xa,fnd,0,fl)) { 
       if(xa>xp) { sb=append(sb,val.substring(xp,xa)); }    // substring uses private construct which does not dup char[] 
       sb=append(sb,rpl); 
       xp=(xa+fl); 
       xa=(xp-1);              // -1 to account for loop xa++; 
       } 
      } 

     if(sb!=null) { 
      if(xp<val.length()) { sb.append(val.substring(xp,val.length())); } // substring uses private construct which does not dup char[] 
      return sb.toString(); 
      } 
     } 
    return val; 
    } 

static private StringBuffer append(StringBuffer sb, String txt) { 
    if(sb==null) { sb=new StringBuffer(txt.length()); } 
    sb.append(txt); 
    return sb; 
    } 

Quant à la deuxième partie de vous poser des questions, vous aurez besoin d'utiliser un analyseur XML pour extraire les informations que vous voulez. Sinon, vous serez dans certains travaux manuels (probablement kludgy). Un rapide coup d'oeil à CLDC suggère qu'il pourrait être basé sur Java 1.1 (pouah!). DigiLife a un PDF document qui a de plus bonnes informations sur J2ME. La connaissance de la configuration (CDC ou CLDC) et du profil (MIDP ou PP) que vous ciblez est essentielle pour savoir quelles API sont disponibles. Et notez que même si vous utilisez un profil basé sur sur J2SE 1.4, il peut manquer toutes sortes de classes et de méthodes, y compris les divers paquets d'analyse XML. Par conséquent, vous devrez peut-être fournir vous-même des alternatives à un tiers (ou les écrire vous-même).

EDIT: Je remarque que le BlackBerry V5 doco inclut des packages d'analyseur XML.

Questions connexes