29. januar 2003 - 15:33Der er
2 kommentarer og 2 løsninger
uddrag int fra String
Jeg har en lang string ex : test test test 12345678 test test Jeg ved ikke hvor lang den er eller hvor min 8 karakterer lang int er i sætningen. Men jeg har brug for en funktion der tager denne string som input parameter og returner int'en til sidst. Håber i kan hjælpe Takker
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.
Hvis du er sikker på der er mellemrum foran og efter int'en kan du bruge StringTokenizer til at at splitte String'en op i tokens, og derefter bruge Integer.parseInt() på hver token.
hvis strengen er s,
StringTokenizer tokenizer = new StringTokenizer(s); int tal; while(tokenizer.hasMoreTokens() { String s = tokenizer.nextToken(); try { tal = Integer.parseInt(s); break; } catch(IllegalNumberFormatException e) {} }
Hov. Der var lidt ekstra linier hvorfra jeg klippede det. Jeg prøver igen:
StringTokenizer st = new StringTokenizer(line, " "); int num; String s; while (st.hasMoreTokens()) { s = st.nextToken(); if (isAllDigits(s)) { num = Integer.parseInt(s); System.out.println("number=" + num); } else { System.out.println("string=" + s); } }
private static boolean isAllDigits(String s) { for (int i = 0; i < s.length(); i++) { if (!Character.isDigit(s.charAt(0))) { return false; } } return true; }
logikken er ihvertfald meget simpelt - bare test for om et token består af ene tal.
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.