christofferv Skrevet 17. februar 2011 Del Skrevet 17. februar 2011 (endret) Hei! Som topic sier, skal jeg altså lage en metode som sjekker om det står noe i en tekststreng eller ikke. Koden jeg har brukt til nå er: public class emptystring { private String name; public emptystring(String name){ setName(name); } public void setName(String name){ if ((name == null) || (name.equals(""))){ this.name = "Unspecified"; } else { this.name = name; } } } NB: ikke bry dere med klassenavn osv! Problemet mitt er at det fungerer egentlig helt fint, men ikke viss tekststrengen er helt tom d.v.s viss du ikke en gang skriver hermetegn i tekstboksen! Problemet ser ut til å ligge i if-setningen der det står name == null.. Noen som har bedre alternativ til hva som kan stå der for å sjekke om det står tegn i tekstboksen i det hele tatt? BTW, programmeringen foregår i BlueJ! =) Endret 17. februar 2011 av cv-trial Lenke til kommentar
quantum Skrevet 17. februar 2011 Del Skrevet 17. februar 2011 Metoden din ser helt riktig ut. Men jeg skjønner ikke helt hva du mener med å skrive hermetegn i tekstboksen. de blir ikke behandlet på noen annen måte enn vanlige tegn. Et annet spørsmål er hva du forventer at skal skje om teksten bare består av en eller flere blanke. Kan det være det som skjer? Lenke til kommentar
christofferv Skrevet 17. februar 2011 Forfatter Del Skrevet 17. februar 2011 Poenget er å sjekke om det er noe i tekstboksen i det hele.. Som sagt viss tekstboksen er tom så dukker det opp en feilmelding om at tekstboksen er tom. Men skriver jeg to hermetegn etter hverandre altså "" så fungerer sjekken min og setter navn til "Unspecified"! Det jeg vil er at selv om jeg ikke skriver inn hermetegn så skal navnet bli "Unspecified". Anngående det du nevnte om bare tomrom (mellomrom) har jeg ikke tatt høyde for her. Har luktet litt på string.trim() men har ikke kommet så langt! Lenke til kommentar
Emancipate Skrevet 17. februar 2011 Del Skrevet 17. februar 2011 Det er nok i koden som henter strengen ut fra tekstboksen at problemet ligger, og den har du ikke vist oss, så da blir det vanskelig å svare. Lenke til kommentar
Gjest Skrevet 17. februar 2011 Del Skrevet 17. februar 2011 (endret) Slik er koden beskrevet på godt norsk: if ((name == null) || (name.equals(""))){ this.name = "Unspecified"; } else { this.name = name; } Koden over er det samme om denne koden under: Hvis: name = tom(empty/null) ELLER hvis name innholder "" som en tekst Da skal dette skje: name være lik Unspecified Hvis ikke name er tom eller inneholder "" som en tekst da skal dette skje: name er lik name Hva med å bruke: if(name.length() == 0){ } ? Endret 17. februar 2011 av Gjest Lenke til kommentar
christofferv Skrevet 17. februar 2011 Forfatter Del Skrevet 17. februar 2011 (endret) Takk for tipset ColdICE, men jeg får fortsatt "Error, empty parameter field" i BlueJ! NBNB: Er ikke noe "tekstboks".. Dette er et paramterfelt når vi oppretter et nytt objekt av en klasse! Endret 17. februar 2011 av cv-trial Lenke til kommentar
Emancipate Skrevet 17. februar 2011 Del Skrevet 17. februar 2011 (endret) NBNB: Er ikke noe "tekstboks".. Dette er et paramterfelt når vi oppretter et nytt objekt av en klasse!Hvorfor i all verden sa du ikke det med en gang? "Hei, jeg har noen problemer med bilen min. Eller forresten, det var ikke bilen, men vedovnen på hytta." "" er en tom streng, altså en streng som inneholder ingenting, ikke en streng som inneholder to anførselstegn. Jeg mistenker at det du ser etter er "optional parameters", noe Java ikke har (edit: unntatt hvis du lager en overloaded funksjon). Endret 17. februar 2011 av tsg1zzn 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å