Som besökare på Hamsterpaj samtycker du till användandet av s.k. cookies för att förbättra din upplevelse hos oss. Jag förstår, ta bort denna ruta!
Annons

Lite hjälp med basic java programmering

Skapad av martinolofsson, 2013-09-10 21:12 i Webbutveckling & Programmering

4 045
21 inlägg
1 poäng
martinolofsson
Visningsbild
P 27 Hjälte 22 inlägg
1
Hej folk! Jag heter Martin Olofsson, jag började lära mig Java idag och har bara lite fundering kring hur man gör vissa saker och jag hoppas att det finns någon där ute som kan svara på mina frågor. Jag lär mig från boken "Programmering 1 Java", skriven av Magnus Lilja, Ulrik Nilsson & Bo Sillborn som min skola (NTI-gymnasiet) erbjuder.

Vad försöker jag att göra?
Jag försöker att göra så att mitt program frågar efter en bokstav (A-Z) i stor bokstav, och sen ska programmet svara med den lilla bokstaven.

Detta är vad jag har:
package uppgift.pkg2.pkg8;
import java.util.Scanner;

public class Uppgift28
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);

System.out.print("Ange ett tecken: ");
String alpha = input.nextLine();

char tecken = alpha.charAt(0);
int kod = (int)tecken + 32;

int nyKod = (int)kod;
String nyttTecken = Integer.toString(nyKod);

System.out.println("Litet " + alpha + " blir boksaven " + nyttTecken + ".");
}
}

Vad går fel?
Det här händer:
Forum image
Vad jag vill är att den svarar med bokstaven lilla 'a' och inte 97.

Finns det möjligtvis nåt Java geni som kan hjälpa mig? :)
Tack på förhand!

Är reklamen ivägen? Logga in eller registrera dig så försvinner den!

StayYucky
Visningsbild
Hjälte 143 inlägg
0
Om du vill göra det oerhört mycket lättare för dig själv kan du bara använda String-funktionen toLowerCase(). Det vill säga output till konsolen blir som följer:

System.out.println("Stor bokstav: "+alpha+", liten bokstav: "+alpha.toLowerCase()+".");

Hela programmet blir då oerhört mycket kortare:

public class Uppgift28
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);

System.out.print("Ange ett tecken: ");
String alpha = input.nextLine();

System.out.println("Litet " + alpha + " blir boksaven " + alpha.toLowerCase+ ".");
}
}


Annars kan du, eftersom du bara vill ha en bokstav, använda en char istället. Byt då ut

String nyttTecken = Integer.toString(nyKod);

mot

char nyttTecken = (char) nyKod;
Guitarman
Visningsbild
P 30 Hjälte 6 576 inlägg
0
Nu kan inte jag java ett dugg..men jag tänker:

[code]
package uppgift.pkg2.pkg8;
import java.util.Scanner;

public class Uppgift28
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);

System.out.print("Ange ett tecken: ");
String alpha = input.nextLine();

char tecken = alpha.charAt(0);
int kod = (int)tecken + 32;

char nyttTecken = (char)kod;

System.out.println("Litet " + alpha + " blir boksaven " + nyttTecken + ".");
}
}
[/code]

Tillägg av Guitarman 2013-09-10 21:36

Failade på code-taggarna :)

Hajj på dajj

martinolofsson
Visningsbild
P 27 Hjälte 22 inlägg
Trådskapare
0
Svar till StayYucky [Gå till post]:
Inte riktigt enligt bokens instruktioner men det funkar. Funkar det så funkar det, så tänker jag så jag löser uppgiften på det sättet. Tack för feedback! :)

Taiki
Visningsbild
P 32 Hjälte 90 inlägg
0

Svar till martinolofsson [Gå till post]:
import java.util.Scanner;

public class Case
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);

System.out.print("Ange ett tecken: ");
String alpha = input.nextLine();

String beta = alpha.toLowerCase();

System.out.println("Litet " + alpha + " blir boksaven " + beta + ".");
}
}


Detta är ett mycket lättare sätt. Det enda jag gjorde var att jag tog bort lite av din kod och satte till alpha.toLowerCase(); vilket tar bokstaven du skriver in och gör den till en liten bokstav och sätter sedan in den i variabeln beta som du sedan kan skriva ut.

Old school

martinolofsson
Visningsbild
P 27 Hjälte 22 inlägg
Trådskapare
0
Svar till Guitarman [Gå till post]:
NetBeans gillade inte riktigt koden. :(

martinolofsson
Visningsbild
P 27 Hjälte 22 inlägg
Trådskapare
0
Svar till Meoww [Gå till post]:
Fungerar också utmärkt, tack!

StayYucky
Visningsbild
Hjälte 143 inlägg
0

Svar till martinolofsson [Gå till post]:
Står det att du måste använda Integer.toString? Så vitt jag kan se returnerar den bara en integer som en string, dvs 25 blir "25" så att säga. :P

Pankie
Visningsbild
P 32 Nödinge Hjälte 4 192 inlägg
0

Svar till martinolofsson [Gå till post]:

Istället för att göra det så omständligt:

http://pastebin.com/0Jb0VqL2


Din mamma behandlar fler förfrågningar än HTTP

martinolofsson
Visningsbild
P 27 Hjälte 22 inlägg
Trådskapare
0
Här är en annan kod jag pysslade med tidigare idag. Fick inte riktigt till det och lyckades till slut lösa det med en specialare. Vad gjorde jag för fel?

package uppgift.pkg2.pkg3;
import java.util.Scanner;

public class Uppgift23
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);

System.out.print("Ange din ålder: ");
int ålder = input.nextInt();
System.out.println();

double ålder4 = Double.valueOf(ålder);
ålder = (ålder / 10);
short ålder2 = (short)ålder;
int ålder3 = (int)ålder2;
ålder3 = (ålder3 * 10);
ålder4 = (ålder4 - (ålder3 + 10));
ålder4 = ålder4 * -1; /* Utan detta så får jag "Du fyller x om -y år." */

/* Jag har troligtvis gjort nån specialare för att komma runt nåt logiskt fel. */
System.out.println("Du fyller " + (ålder3 + 10) + " om " + ålder4 + " år .");
}
}
martinolofsson
Visningsbild
P 27 Hjälte 22 inlägg
Trådskapare
0

Svar till StayYucky [Gå till post]:
Det ända som stod var typ "Tips! Det är 32 index mellan de stora bokstäverna och de små bokstäverna." :P

Taiki
Visningsbild
P 32 Hjälte 90 inlägg
0

Svar till martinolofsson [Gå till post]:
Vad vill du att koden ska göra? Som det ser ut nu verkar den säga om hur lång tid du fyller närmsta 10-talsålder.

Old school

martinolofsson
Visningsbild
P 27 Hjälte 22 inlägg
Trådskapare
0

Svar till Meoww [Gå till post]:
Ah, det är det den ska säga. Jag tyckte bara att det ser ut som att jag strulat till det väldigt, i och med att och blev tvungen att använda ålder * -1.

Taiki
Visningsbild
P 32 Hjälte 90 inlägg
0
Svar till martinolofsson [Gå till post]:
Du skulle kunna göra det lättare genom att skriva följande:

import java.util.Scanner;

public class Case{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);

System.out.print("Ange din ålder: ");
int ålder = input.nextInt();
int newage = ålder+(10-(ålder));
System.out.println("Du fyller " + newage + " om " + (10-(ålder)) + " år.");

}
}


Du kan få klura lite på vad % (modulus) gör och vad jag verkligen har gjort. Om du har några frågor är det bara att ställa :)



Tillägg av Meoww 2013-09-10 22:01

Hmm, inlägget bråkar. Där det står "ålder" ska det egentligen stå "ålder % 10 ". På två ställen:

1. Vid "int new age" i parantesen, och
2. I systemoutprint, raden under

Old school

martinolofsson
Visningsbild
P 27 Hjälte 22 inlägg
Trådskapare
0
Svar till Meoww [Gå till post]:
Det fungerade inte riktigt. :/

Forum image


Tillägg av martinolofsson 2013-09-10 22:14

Jag ändrade det du sa till, nu svarar den "Du fyller 0 om 4 år."

Taiki
Visningsbild
P 32 Hjälte 90 inlägg
0

Svar till martinolofsson [Gå till post]:
Kolla på mitt tillägg i mitt förra inlägg och se om det hjälper :)

Old school

martinolofsson
Visningsbild
P 27 Hjälte 22 inlägg
Trådskapare
0

Svar till Meoww [Gå till post]:
Nu svarar den "Du fyller 0 om 4 år."
Taiki
Visningsbild
P 32 Hjälte 90 inlägg
0

Svar till martinolofsson [Gå till post]:
Forum image

Såhär ska det vara! Forumet bråkade med min kod lite. Men det viktiga här är att du förstår vad %-tecknet gör.

Old school

martinolofsson
Visningsbild
P 27 Hjälte 22 inlägg
Trådskapare
0
Svar till Meoww [Gå till post]:
Ah, nu funkar det, tack så mycket! Ska ta reda på vad %-tecknet betyder. Det är en liten grej till jag tänkte på, sen är det lungt. :)

Hur skulle du på enklaste sätt få fram initialerna av namnet? Det står något om att man skulle plocka ut indexet av bokstaven efter " " i boken, men jag förstår inte riktigt hur de menar.

package uppgift.pkg2.pkg5;
import java.util.Scanner;

public class Uppgift25
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);

System.out.println("Ange för- och efternamn: ");
String namn = input.nextLine();

//Resterande kod
}
}

Tack för all hjälp!
Taiki
Visningsbild
P 32 Hjälte 90 inlägg
0

Svar till martinolofsson [Gå till post]:
Vill inte ge dig hela koden, men min idé är att du använder dig av en funktion som heter.split();

Den används tex

String namn = input.nextLine();
String [] delarAvNamn = namn.split("a");

Detta kommer göra så att "namn" splittas där det står ett "a" (du kan givetvis ändra att det ska splittas för mellanslag eller något annat tecken) och läggas in i delarAvNamn[] på plats 0, 1, 2 etc.. (beroende på hur många saker som splittas i namn).

Lek lite med detta och se om det leder någon vart :)

Old school

martinolofsson
Visningsbild
P 27 Hjälte 22 inlägg
Trådskapare
0

Svar till Meoww [Gå till post]:
Okej, tack :)


Forum » Datorer & IT » Webbutveckling & Programmering » Lite hjälp med basic java programmering

Ansvariga ordningsvakter:

Användare som läser i den här tråden just nu

1 utloggad

Skriv ett nytt inlägg

Hej! Innan du skriver om ett potentiellt problem så vill vi påminna dig om att du faktiskt inte är ensam. Du är inte onormal och världen kommer inte att gå under, vi lovar! Så slappna av och gilla livet i några minuter - känns det fortfarande hemskt? Skriv gärna ner dina tankar och frågor, vi älskar att hjälpa just dig!

Den här tråden är äldre än Rojks drömtjej!

Det senaste inlägget i den här tråden skrevs för över tre månader sedan. Är du säker på att du vill återuppliva diskussionen? Har du något vettigt att tillföra eller passar din fråga i en ny tråd? Onödiga återupplivningar kommer att låsas så tänk efter en extra gång!

Hjälp

Det här är en hjälpruta

Här får du korta tips och förklaringar om forumet. Välj kapitel i rullningslisten här ovanför.

Rutan uppdateras automagiskt

När du använder funktioner i forumet så visas bra tips här.


Annons
Annons
Annons
Annons