---
title: "string till int"
type: "forum-thread"
url: "https://www.webforum.nu/amne/java/28381-string-till-int"
topic: "Java"
topic_url: "https://www.webforum.nu/amne/java"
author: "justine"
published: "2001-11-18T21:06:00.000Z"
updated: "2001-11-22T07:03:00.000Z"
replies: 11
views: 517
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/java/28381-string-till-int"
---

# string till int

## #1 — justine, 2001-11-18T21:06Z

jag vill göra om en sträng till integer och vill då kolla först så det bara finns siffror i strängen. 

typ:
if ((myString.charAt(1)\>'0')&&(myString.charAt\<'10')){
return true;
}

fast det funkar inte riktigt ju. har jag tänkt helt fel?
hur kollar jag efter så att det inte finns blanksteg?

Permalänk: https://www.webforum.nu/p/28381

## #2 — sgtpepper, 2001-11-18T21:32Z

Det enklaste är att helt enkelt skicka strängen som argument till Integers konstruktor och sedan fånga ett eventuellt NumberFormatException. Kastas detta undantag så är det en ej godkänd sträng, annars är allt frid och fröjd:

\<font size="1" face="Verdana, Arial, Helvetica, sans-serif"\>Kod:\<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600"\>String myString = "1322";
Integer i;
try {
	i = new Integer(myString);
} catch (NumberFormatException e) {
	System.out.println(myString+ "är inte ett godkänt heltal");
}

Permalänk: https://www.webforum.nu/p/402350

## #3 — Lime, 2001-11-19T08:05Z

Vad är det för fel på Character.isDigit()?
 http://java.sun.com/j2se/1.3/docs/api/java/lang/Character.html#isDigit(char) 

/Lime

Permalänk: https://www.webforum.nu/p/402351

## #4 — sgtpepper, 2001-11-19T14:14Z

> Vad är det för fel på Character.isDigit()?

Vem har sagt att det är något fel på den?

I det här fallet skulle det dock vara intressant att få höra på vilket sätt isDigit() är bättre lämpat, skall man ovandla en textsträng till en Integer så är det ju väldigt simpelt att just göra det och sedan fånga eventuella undantag istället för att hålla på och spendera klockcykler åt att kolla varenda tecken i strängen och se om det är en siffra eller inte.

Permalänk: https://www.webforum.nu/p/402352

## #5 — Lime, 2001-11-20T08:06Z

Faktum är att det tar mindre tid att bara kolla om det är en siffra i en sträng än att omvandla den.

Konstruktorn Integer(String) anropar Integer.parseInt(String) som kollar efter minustecken först och sedan går till sista tecknet i strängen och kollar om det är en digit . Om det är det så adderar den digit (genom bitoperatorer) till det resultat som redan finns.

Om man bara är intresserad av att veta om det är en till integer konverterbar sträng så tar det mindre klockcykler att bara kolla att alla ingående tecken är en siffra än att även göra matematiken.

Nu har jag svårt att se varför man INTE skulle vilja ha själva värdet på integern om man nu gör sig besväret att kolla om det är en integer...

Var tvungen att kolla asemblerkoden på denna operation och på en Solaris-maskin så skiljer det 3 instruktioner per siffra mellan att bara kolla om det är en siffra och att kolla och addera... och det är försummbart.

/Lime

Permalänk: https://www.webforum.nu/p/402353

## #6 — spango, 2001-11-21T17:20Z

En annan variant...
\<font size="1" face="Verdana, Arial, Helvetica, sans-serif"\>Kod:\<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600"\>
import java.util.regex.Pattern;
...
if(Pattern.matches("^{digit}+$", myString)){
// bara siffror
} else {
// inte bara siffror
}

Permalänk: https://www.webforum.nu/p/402354

## #7 — Lime, 2001-11-21T17:22Z

Jag måste erkänna att klassen för reguljära uttryck hade jag missat. Oj vad livet blev lättare. Tack S.

/Lime

Permalänk: https://www.webforum.nu/p/402355

## #8 — PeW, 2001-11-21T21:32Z

Funkar inte den bara från JDK1.4?

Permalänk: https://www.webforum.nu/p/402356

## #9 — spango, 2001-11-21T21:51Z

Jo.

Permalänk: https://www.webforum.nu/p/402357

## #10 — PeW, 2001-11-21T22:02Z

\------------------
*Ancilla, face mea laganum!*

Permalänk: https://www.webforum.nu/p/402358

## #11 — sgtpepper, 2001-11-21T22:25Z

> Faktum är att det tar mindre tid att bara kolla om det är en siffra i en sträng än att omvandla den.

Ehh, men när du väl kollat och godkänt strängen så kommer den att kontrolleras igen vid instansieringen av Integerobjektet.

Men visst, alla gör vi väl olika. Jag föredrar dock att helt enkelt fånga undantag men visst kan man sitta och knåpa ihop specialfunktioner om det roar en..

Permalänk: https://www.webforum.nu/p/402359

## #12 — Lime, 2001-11-22T07:03Z

Helt korrekt sgtP. Men nu var diskussionen om kollen tog längre tid än konverteringen.

För övrigt är det resursslöseri att skapa ett nytt Integerobjekt när man förmodligen kommer att använda det atomära int för det mesta... Integer.parseInt(String) är nog bättre då...

Håller fullständigt med om, och det tror jag att jag redan har sagt, att om man skall använda sträng/integern.

Det är aldrig fel att kika på källkoden till Javas core-klasser... Dom gör mycket roligt och snyggt där.

/Lime

Permalänk: https://www.webforum.nu/p/402360

---

Tråden på webben: https://www.webforum.nu/amne/java/28381-string-till-int
