2016-01-05 3 views
-1

je veux remplacer les pièces d'entrée de l'utilisateur pour construire l'url, je l'ai écrit le code pour, mais il ne fonctionne toujours pas, aider plz .....Remplacement d'un seul caractère avec chaîne dans J2ME

Voici comment Je l'appelle:

 newUrl = url +"?user="+ index +"&company="+ urlEncoder(BetTxt2.getString()) +"&date="+ urlEncoder(BetTxt1.getString()); 

Ceci est la méthode de remplacement:

public static String urlEncoder (String s) { 
    StringBuffer sbuf = new StringBuffer(s); 
    int len = s.length(); 
    for (int i=0; i<len; i++) { 
     int ch = s.charAt(i); 
     switch (ch) { 
      case '#': 
       sbuf.append("%23"); 
       break; 
      case '+': 
       sbuf.append("%2B"); 
       break; 
      case '*': 
       sbuf.append("%2A"); 
       break; 
      default: 
       sbuf.append(ch); 
       break; 
     } 


    } 
    return sbuf.toString(); 

}

Répondre

0

H avant est la modification (vous devez changer le nom de charNew) de ma méthode, qui change omble chevalier pour l'omble:

public String replaceChar(String text, char charReplace, String charNew) 
{ 
    String newString = ""; 
    for(int i = 0; i < text.length(); i++) 
    { 
     // System.out.println("char at " + i + " is " + text.charAt(i)); 
     if(text.charAt(i) == charReplace) 
     { 
      newString += charNew; 
     } 
     else 
     { 
      newString += text.charAt(i); 
     } 
    } 
    return newString; 
} 
0

Je trouve le code ci-dessous here vous pouvez regarder le ascii table pour une meilleure compréhension.

public static String URLencode(String s) 
{ 
    if (s!=null) { 
     StringBuffer tmp = new StringBuffer(); 
     int i=0; 
     try { 
      while (true) { 
       int b = (int)s.charAt(i++); 
       if ((b>=0x30 && b<=0x39) 
        || (b>=0x41 && b<=0x5A) 
        || (b>=0x61 && b<=0x7A)) 
       { 
        tmp.append((char)b); 
       } 
       else { 
        tmp.append("%"); 
        if (b <= 0xf) 
         tmp.append("0"); 
        tmp.append(Integer.toHexString(b)); 
       } 
      } 
     }catch (Exception e) {} 
     return tmp.toString(); 
    } 
return null; 
}