Problem med string.length og java.util.Scanner

Tags:    java programmering

Hej, kan ikke forstå hvorfor følgende ikke virker?

Fold kodeboks ind/udJava kode 





7 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 19 karma
Sorter efter stemmer Sorter efter dato
length er jo en metode, altså skal den kaldes således

saetning.length();

og ikke

saetning.length;



Fold kodeboks ind/udJava kode 

Den siger at den ikke bare vil lave en streng om til en falsk/sand værdi. Problemet er at du sammenligner ikke, a med "sætning" du sætter faktisk a lig med "sætning" og så er "sætning" resultat inde i paranteserne. Og "sætning" kan den ikke vurdere om er sand eller falsk.

I stedet for '=' bør du bruge '==' som sammenligner om to objekter er ens og giver sand/falsk. Så vil den kompilere. Der er dog den hage at strenge i Java ikke kan sammenlignes "ordentlig" med ==. I stedet skal du bruge en metode på strengen kaldet equals:
Fold kodeboks ind/udJava kode 


Årsagen er at med strenge så laver java noget der hedder "reference equality". Kort sagt så er 10 = 10, men "Hej" != "Hej". Det svarer lidt til at du har 2 skilte med samme tekst. Kan godt være at teksten er ens men det er stadig to forskellige skilte. Med equals tjekker Java om bogstaver på skiltet er de samme.



Indlæg senest redigeret d. 01.02.2012 22:25 af Bruger #14645
Et gæt er at saetning.length måske skal være en string så prøv saetning.length.toString()



Hvad siger fejlen? Så kan vi tolke den. En stor del af at kode er også at kunne læse de fejlmeddelelser der bliver kastet efter en. Men jeg vil vove at gætte på der er noget galt med linje 13.



Exception in thread "main" java.lang.Error: Unresolved compilation problem:
length cannot be resolved or is not a field

at Længde.main(Længde.java:13)




Exception in thread "main" java.lang.Error: Unresolved compilation problem:
length cannot be resolved or is not a field

at Længde.main(Længde.java:13)


Så length er ikke et field til saetning. Prøv at se om det måske er en metode, hvilket det er til String. Så sæt () efter length.



Hvad så med den her kode?

Fold kodeboks ind/udJava kode 


Får følgende fejl.

Fold kodeboks ind/udKode 




Indlæg senest redigeret d. 01.02.2012 22:03 af Bruger #16945
t