2016-01-05 119 views
-1

更換單個字符我要替換用戶輸入的配件組裝的網址,我寫的代碼,但它仍然無法正常工作,幫助PLZ .....用繩子在J2ME

這是怎麼了我打電話它:

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

這是該方法用於替換:

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(); 

}

回答

0

ħ ERE是修改我的方法,改變對於字符的字符(你應該改變charNew的名稱):

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

我發現下面here的代碼,你可能想看看ascii table爲了更好的理解。

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; 
}