webForumDet fria alternativet

Kolla om tal!

7 svar · 318 visningar · startad av Poppe25

Poppe25Medlem sedan apr. 2002278 inlägg
#1

1 Någon som har bra tips på hur man kan kolla om ett inläst värde är ett tal. Om man till exempel har koden:

String str = JOptionPane.showInputDialog("Skriv in ett tal:");
try{
int tal = Integer.parseInt(str);
} catch (NumberFormatException e){
....
....
}

Problemet är att är det inget tal man skriver in så stannar programmet. Hur kan jag gardera mig mot detta på ett smart sätt?

2 Har ännu en fråga: Någon som skulle kunna visa hur man byter en viss angiven text i en sträng mot en annan text. Man bör kolla att texten verkligen finns med och det spelar ingen roll hur lång den andra strängen är. Har fått tips om StringBuffer(), men får inte till det.

ViktorMedlem sedan aug. 20021 710 inlägg
#2

Svar på fråga 1: Då måste du visa mer kod, för som du har gjort det ska det fungera. Du fångar ett exception eftersom du inte vill att programmet ska avbrytas. Här är ett exempel på hur du kan göra,

import javax.swing.*;

public class Test2
{
	public static void main(String argv[])
	{
		int tal=-1;
		do
		{
			String str = JOptionPane.showInputDialog("Skriv in ett tal:");
			try
			{
				if(str==null)
					tal=0;
				else
					tal = Integer.parseInt(str);
			}
			catch(NumberFormatException e)
			{
				e.printStackTrace(System.err);
			}
		}
		while(tal==-1);
		System.exit(0);
	}
}

Programet avslutas först när du har tryckt på Avbryt eller skrivit in ett tal.

Svar på fråga 2: Använd replaceAll funktionen som finns i String,

String s="Detta var ett bra svart tycker jag att det var bra!";
s=s.replaceAll("bra","DÅLIGT!");
//webForum.reply.Viktor(s);

/Viktor

Poppe25Medlem sedan apr. 2002278 inlägg
#3

Tack...nu har jag förstått exceptions bättre! Det var inget problem längre. Och till fråga två (som fungerar utmärkt) finns det något smidigt sätt att till exempel ersätta en text oberoende av små eller stora bokstäver, med en annan text?

ViktorMedlem sedan aug. 20021 710 inlägg
#4

Om du vill skilja på stora och små bokstäver så tror jag att du måste köra med regular expression. Du använder samma funktion men skickar med ett regexp som första argument istället för en vanlig sträng.

/Viktor

Poppe25Medlem sedan apr. 2002278 inlägg
#5

"Om du vill skilja på stora och små bokstäver så tror jag att du måste köra med regular expression"

Nu är jag inte riktigt med...s=s.replaceAll("bra","DÅLIGT!") tycks fungera så att det inte går att byta ut alla ord som är 'Bra','BRA' och liknande, dvs replaceAll verkar casesensitive. Hur menar du med att man kör med .regular expression'?

ViktorMedlem sedan aug. 20021 710 inlägg
#6

Det visste jag inte att replaceAll var caseinsensitive, bra :)

Kolla här, String och här, Pattern för mer info om regexp.

/Viktor

Poppe25Medlem sedan apr. 2002278 inlägg
#7

vad använder man regexp till?

ViktorMedlem sedan aug. 20021 710 inlägg
#8

Vad använder man det inte till ;)

Du använder det för att söka, ersätta, manipulera textsträngar med hjälp av kontroll tecken som betyder olika saker. Gör en sökning på Google så hittar du massor av information. Det är svårt men om man kan det så blir livet lite lättare.

/Viktor

132 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
129 ms — hämta tråd, inlägg och bilagor (db)