07. april 2004 - 09:30Der er
16 kommentarer og 1 løsning
Oversættelse af VB kode til java kode med forklaring
Hejsa Er der nogen der kan hjælpe mig med at oversætte understående vb kode til java kode og forklare mig hvad der sker?
Private Function URLEncode(ByVal URL As String) As String Dim i As Integer Dim sTemp As String, sChar As String Dim sOut As String Dim iAsc As Integer
sTemp = Trim(URL) For i = 1 To Len(sTemp) sChar = Mid(sTemp, i, 1) iAsc = Asc(sChar) If (iAsc >= 48 And iAsc <= 57) Or (iAsc >= 97 And iAsc <= 122) Or (iAsc >= 65 And iAsc <= 90) Then sOut = sOut & sChar Else sOut = sOut & "%" & Hex(iAsc) End If Next i
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Hej Arne Tak for svaret. Nej du behøver ikke håndkode, det er bare funktionaliteten jeg skal bruge. I hvilket tilfælde vil man ofte bruge en sådan URL encode - det må næsten være i forbindelse med fx http requests for at undgå problemer med æøå eller?
public class EUTest { private final static int N = 100000; public static String myurlencoder(String s) { char hexdigit[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; StringBuffer sb = new StringBuffer(""); for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); if (('0' <= c && c <= '9') || ('A' <= c && c <= 'Z') || ('a' <= c && c <= 'z')) { sb.append(c); } else { sb.append('%'); sb.append(hexdigit[(c >> 4) & 0x0F]); sb.append(hexdigit[c & 0x0F]); } } return sb.toString(); } public static void main(String[] args) throws Exception { long t1 = System.currentTimeMillis(); for(int i = 0; i < N; i++) { String s = myurlencoder("Dette er ÆØÅ"); } long t2 = System.currentTimeMillis(); System.out.println("home made : " + (t2-t1)); long t3 = System.currentTimeMillis(); for(int i = 0; i < N; i++) { String s = URLEncoder.encode("Dette er ÆØÅ", "ISO-8859-1"); } long t4 = System.currentTimeMillis(); System.out.println("builtin : " + (t4-t3)); long t5 = System.currentTimeMillis(); for(int i = 0; i < N; i++) { String s = URLEncoder.encode("Dette er ÆØÅ", "ISO-8859-1").replaceAll("\\+", "%20"); } long t6 = System.currentTimeMillis(); System.out.println("builtin with mod : " + (t6-t5)); } }
Jøsses! Det var da noget af en hastigheds forskel! Måske Sun kunne bruge noget inspiration fra dig - det er da noget, der virker det du har lavet i forhold til.
Så er jeg da i hvert fald ikke i tvivl om, hvad jeg skal bruge.
Det skal siges at SUN jo også skal kunne håndtere forskellige karakter sæt.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.