olemagro Skrevet 17. februar 2009 Del Skrevet 17. februar 2009 Hadde en laboppgave her forleden som ble dyttet til side pga mye aktivitet i andre fag, men har lyst å få den til likevel. Oppgaven går ut på å lage et program der brukeren skal skrive inn navnet og få opp en meny med forskjellige valg som endrer måten navnet blir skrevet ut på. Jeg har grunnkoden, men mangler noen få kommandoer som kan endrer på hvordan navnet skrives ut; Tast ett av følgende tall: 1: Skriver ut navnet 2: Bytter rekkefølge på fornavn og etternavn 3: Skriver navnet med store bokstaver 4: Skriver navnet med små bokstaver 5: Skriver ut initialene 6: Skriver ut fornavnet Foreløpig har jeg 1, 3 og 4. Setter virkelig pris på svar angående dette :> Lenke til kommentar
brback Skrevet 17. februar 2009 Del Skrevet 17. februar 2009 Går ut i fra at du lagrer input navnet i en streng her. Det enkleste ville jo vært om du kunne prompte først etter fornavn og så etternavn, slik at du lett kan lagre dem i egen strenger. Hvis du skal likevel lagre hele navnet i en streng må du klare å skille om hva som er er for- og hva som er etternavnet. Dette er greit nok, men kan bli problematisk om en person har et dobbelt navn. Feks: Ole Birger Nordmann Her er det vanskelig å avgjøre ved hjelp av vanlig kode hvilken del av navnet som er fornavnet og hva som er etternavnet. Hvis du tar noen forutsetninger angående dette blir det nok lettere å hjelpe deg videre Lenke til kommentar
olemagro Skrevet 17. februar 2009 Forfatter Del Skrevet 17. februar 2009 Setter pris på kommentaren. Jeg har spurt litt rundt angående det med å lage input for hvert navn, som ville gjøre det lettere å trikse med dem, men som du selv sa blir det problematisk om folk har mer enn to navn. Er fortsatt ganske ny innen programmering i java om du lurte Kan vise koden jeg allerede har om det er til noe hjelp. package lab3; import java.util.Scanner; public class Øving3 { public static void main(String[]args){ menyOving3(); } public static void menyOving3(){ Scanner kommando = new Scanner(System.in); boolean fortsett = true; String navn = getNavn(); if (navn.equalsIgnoreCase("xx")){ fortsett=false; System.out.println("Avslutter..."); } while (fortsett){ meny(); int Kommando = kommando.nextInt(); executeCom(Kommando, navn); } } public static String getNavn(){ Scanner navn = new Scanner(System.in); System.out.println("Oppgi et navn (Navn / Etternavn)"); String Navn = navn.nextLine(); return Navn; } public static void meny(){ System.out.println("1. Skriver ut navnet"); System.out.println("2. Bytter rekkefølge på fornavn og etternavn"); System.out.println("3. Skriver navnet med store bokstaver"); System.out.println("4. Skriver navnet med små bokstaver"); System.out.println("5. Skriver ut initialene"); System.out.println("6. Skriver ut fornavnet"); System.out.println(" Gi en kommando: "); } public static void executeCom(int valg, String navn){ if (valg == 1) { System.out.println(navn); } else if(valg == 2){ System.out.println(); } else if(valg == 3){ System.out.println(navn.toUpperCase()); } else if(valg == 4){ System.out.println(navn.toLowerCase()); } else if(valg == 5){ System.out.println(); } else if(valg == 6){ System.out.println(); } } } Lenke til kommentar
pgdx Skrevet 17. februar 2009 Del Skrevet 17. februar 2009 Hvis du har noe greier i en streng, e.g.: String strengen = "En streng med mange mellomrom"; så blir String[] splitted = strengen.split(" "); til følgende tabell: String[] {"En", "streng", "med", "mange", "mellomrom"} Lenke til kommentar
drahcir Skrevet 4. mars 2009 Del Skrevet 4. mars 2009 Hvis du har noe greier i en streng, e.g.: String strengen = "En streng med mange mellomrom"; så blir String[] splitted = strengen.split(" "); til følgende tabell: String[] {"En", "streng", "med", "mange", "mellomrom"} Og til nummer 5 trenger du i tillegg f.eks. metoden substring. Se dokumentasjon her. Lenke til kommentar
Cyberfrog Skrevet 5. mars 2009 Del Skrevet 5. mars 2009 Jeg ville nok brukt noe sånt som strengTabell[i].charAt(0) Sannsynligvis enklere enn substring. Litt sent innspill, uansett. Lenke til kommentar
gather Skrevet 11. mars 2009 Del Skrevet 11. mars 2009 Feks: Ole Birger NordmannHer er det vanskelig å avgjøre ved hjelp av vanlig kode hvilken del av navnet som er fornavnet og hva som er etternavnet. Hvis du tar noen forutsetninger angående dette blir det nok lettere å hjelpe deg videre Det er strengttatt ikke noe problem. I norge kan du anta at alle har ETT etternavn. Slik at om navnet hadde vært Ole Birger Hansen Nordmann Så vil etternavnet være Nordmann og et formellt brev til denne personen ville vært adressert Nordmann, Ole Birger Hansen Ergo bare ET etternavn Lenke til kommentar
gardsandholt Skrevet 18. mars 2009 Del Skrevet 18. mars 2009 Hvis du er nybegynner i java anbefaler jeg å gå inn i java api´et på String. http://java.sun.com/j2se/1.5.0/docs/api/ja...ang/String.html Gå til method summary og metodene av interesse er bl.a.: equals format length split substring toLowerCase toUpperCase Og hvis du søker i google finner du sikkert enkle eksempler på bruk av disse metodene. Lenke til kommentar
Wisd0m Skrevet 18. mars 2009 Del Skrevet 18. mars 2009 Lønner seg å bruke API'et Jeg bruker en side som heter gotapi.com Søk etter String å finn ut hvilke metoder klassen har. Der finner du bla: toUpperCase() toLowerCase() ++ Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå