Gå til innhold

[Løst] Sjekke om en String er tom?


Anbefalte innlegg

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 av cv-trial
Lenke til kommentar
Videoannonse
Annonse

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

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

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 av Gjest
Lenke til kommentar
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." :wallbash:

 

"" 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 av tsg1zzn
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...