Avatar billede roo104 Nybegynder
31. august 2003 - 20:15 Der er 8 kommentarer og
1 løsning

Teste på array størrelse

Jeg har en Stregn som jeg splitter, men men kan komme ud for den ikke skal splitte stregen og så får jeg ArrayIndexOutOfBoundsException
Funktionen ser sådan her ud:

private String[] splitServerPort(String hostname) {
        String[] ip = hostname.split("\\:");
       
        if (ip.length < 2)
            ip[1] = "27015";
       
        return ip;
    }

Stregen der kommer ind kan enten være 10.0.0.1 eller 10.0.0.1:27015.
Hvis ikke der er port med skal det tilføjes.

Hvordan gøres dette, eller er der ikke en funktion der tester om der er ":" i strengen ?
Avatar billede arne_v Ekspert
31. august 2003 - 20:19 #1
if(hostname.indexOf(':') >= 0) {
Avatar billede arne_v Ekspert
31. august 2003 - 20:20 #2
indexOf returnerer -1 hvis den ikke findes.
Avatar billede roo104 Nybegynder
31. august 2003 - 20:22 #3
virker heller ikke
Avatar billede roo104 Nybegynder
31. august 2003 - 20:22 #4
[1] for ingen værdi
Avatar billede arne_v Ekspert
31. august 2003 - 20:23 #5
Så noget a la:

if(hostname.indexOf(':') >= 0) {
  return hostname.split("\\:");
} else {
  String[] res = new String[2];
  res[0] = hostname;
  res[1] = "27015";
  return res;
}
Avatar billede arne_v Ekspert
31. august 2003 - 20:24 #6
String[] ip = hostname.split("\\:");

er problematisk fordi den returnerer et array med 1 element, når der ikke
er noget kolon. Og så giver ip[1] jo en fejl. Og arrays er ikke sådan at udvide.
Avatar billede jakoba Nybegynder
31. august 2003 - 20:25 #7
strengen "\\:" bør ikke findes i en url. det hedder "://".
Avatar billede roo104 Nybegynder
31. august 2003 - 20:26 #8
ja så virker det
if (hostname.indexOf(':') >= 0)
            return hostname.split("\\:");
        else {               
            hostname += ":27015";
            return hostname.split("\\:");
        }
Avatar billede roo104 Nybegynder
31. august 2003 - 20:27 #9
\\: er regex
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester