webForumDet fria alternativet

String -> null, Int -> ??

Java

11 svar · 730 visningar · startad av Broms

Medlem sedan sep. 2002188 inlägg
Frågan#1

klicka!

Där har vi en fråga som även jag funderar över..

Kortfattat; jag skall kontrollera om en int icke är "null" eller vad nu ints motsvarighet till Stringens null är.. ska även köra en matcher på det som i länken ovan.. kan någon ändra på snutten däri och posta tack..

mvh

Medlem sedan aug. 20039 340 inlägg
#2

Alla objekt-variabler (Strängar inkluderade) i Java kan anta två sorters värden, antingen en referens till en instans av ett visst objekt, eller null. Något motsvarande null för nummer finns inte.
För att kunna svara på frågan måste jag veta varifrån värdet kommer. En kvalificerad gissning är dock att du ska kolla om numret == -1. Ett anant sätt kan vara att se upp för exceptions. Har du möjligtvis en try...catch-sats som inte hanterar felet? (Tom catch-sats med andra ord.)

Medlem sedan sep. 2002188 inlägg
#3

Faktiskt så ligger den ej i en try-catch utan i konstruktorn. dessutom kör jag flera blabla == null med string/int efter varann.. hur gör jag för att testa intarna på samma sätt då? -1 går väl ej då de ej ska ha fått något värde från början?

!isDigit(talet) && talet>0 kanske skulle kunna funka? men funkar det även för double?

Nästa grej..

Pattern p = Pattern.compile("^[A-ZÅÄÖa-zåäö0-9 ]*$");

är min pattern, men kom på att den även skall kunna innehålla - och . för telnummer och priser med decimal.. hur lägger jag till dessa i pattern.. måste det till någon slash för att säkra tecknen?

Medlem sedan sep. 2002188 inlägg
#4

kom dock på att isDigit körs på Strings.. men !isDigit(toString(minInt)) funkade inte heller :\

Medlem sedan aug. 20039 340 inlägg
#5

Men varifrån får du variabeln talet? Den kan ju inte bara uppstå från ingenstans. Kommer den från en databas, från en fil eller?

Medlem sedan sep. 2002188 inlägg
#6

den kommer från ett webbformulär.. och jag vill inte bara ha javascript-kontrollen utan även en serverkontroll.. och konstruktorn anropas när ett enligt javascripkontrollen godkänt formulär skickats, och datan är på väg att skickas till databasen, då utförs denna kontroll..

Medlem sedan aug. 20039 340 inlägg
#7

Ok, jag skulle vilja se tilldelningsraden, typ int talet = ...;

Medlem sedan sep. 2002188 inlägg
#8

i formuläret är ju numret en string då fältens datan hämtas genom getParameter(stringen); denna görs sedan om till en int via t.ex.

Integer.parseInt(request.getParameter("Antal")) och skickas därefter till konstruktorn.

ps. hur fixade man till pattern till det att ha med . och -?

Medlem sedan aug. 20039 340 inlägg
#9

Precis vad jag var ute efter.
Kolla request.getParameter("Antal") är null, innan du omvandlar till ett tal.

if (request.getParameter("Antal")!=null)
    talet=Integer.parseInt(request.getParameter("Antal"))
else
    // Fel!
Medlem sedan sep. 2002188 inlägg
#10

det är en väg, som när jag ser den förstår kan funka :p

dock är det en projektuppgift, vilken innebär att man ska lägga så mkt kod som möjligt i klassfilerna och så lite som möjligt i jsp-filen..

men vad tror du om att skicka den som string till konstruktorn istället och sedan efter att ha kört den där kontrollen tal == null || blabla == null, göra om till intar?

Medlem sedan aug. 20039 340 inlägg
#11

Jomen, ok, skicka med en sträng innehållande talet till konstruktorn och gör kollen där.

String talet=request.getParameter("Antal");
new MinKlass(...,talet,...);
....
int talet_nummer=0;

if (... || talet==null || ...){
    // Fel
}else{
    talet_nummer=Integer.parseInt(talet)
}

Ang regexpen föreslår jag att du har ett varsitt Pattern för varje fält som ska kontrolleras. För att lägga till . som tecken måste du lägga till \. till ditt mönster. Men tecknet \ kan måste också escapas, pga Java's stränghantering. Så om du skriver \\. så motsvarar det \. som skickas vidare. Tecknet - skall inte escapas.

Medlem sedan sep. 2002188 inlägg
#12

danke!

267 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
133 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
133 ms — ändringar (db)