Thread: [JAVA]
-
28-02-2009, 11:04 #1
[JAVA] 2 Strings controleren
Is er een manier om 2 elementen van het type String te vegelijken met elkaar?
Dus er moet gecontroleerd worden of bv. Theepot == Theepot.
thx
edit: crap kan m'n titel niet meer aanpassen
no votes
-
-
28-02-2009, 11:23 #2
Wanneer je de inhoud van strings wil vergelijken gebruik je de equals methode.
Code:String str1 = "theepot"; String str2 = "theepot"; boolean check = str1.equals(str2);
no votes
-
28-02-2009, 12:19 #3Member
- Registered
- 03/11/03
- Location
- Hove
- Posts
- 6,718
- iTrader
- 3 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 1/3
En omdat dit overduidelijk een les 1 in de java klas vraag is
met == ga je vergelijken of twee objecten hetzelfde zijn.
met .equals ga je vergelijken of de inhoud hetzelfde is.Look down at me and you see a fool; look up at me and you see a god; look straight at me and you see yourselfno votes
-
28-02-2009, 13:28 #4Approved 9-lifer
- Registered
- 21/08/08
- Location
- Hasselt
- Posts
- 2,653
- iTrader
- 8 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 5/46
das nie echt waar wa gij zegt he
== vergelijk heel basisch de linker met de rechterkant
nu is het zo dat een string in java (in zowat alle programmeertalen denk ik) een verwijzing is naar een adres in het geheugen, en op die manier, dat da adres overeenkomt met het allereerste karakter van die string, daarom dat ge ook om alle karakters af te lopen, de string-lengte nodig hebt
== gaat dus die verwijzing (lees: pointer) naar de strings vergelijken, en die gaan enkel en alleen hetzelfde zijn als die ook echt naar dezelfde plaats in het geheugen wijzen
daarom moet ge equals gebruiken om de waarde achter die pointer te vergelijken (in C ofzo kunt ge *naam == *naam2 gebruiken, ma dan controleert ge enkel het eerste karakter, de functie equals gaat echt alle karakters vergelijken)no votes
-
28-02-2009, 13:31 #5
ajah .equals() XD, nu jullie het zeggen XD
no votes
-
28-02-2009, 13:33 #6
Maar nu heb ik nog een vraagje, hoe kan je een arraylist afprinten van een object? Want heb al verschillende manieren geprobeert en nog steeds lukt het niet
no votes
-
28-02-2009, 13:44 #7Approved 9-lifer
- Registered
- 21/08/08
- Location
- Hasselt
- Posts
- 2,653
- iTrader
- 8 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 5/46
no votes
-
28-02-2009, 13:47 #8no votes
-
28-02-2009, 13:49 #9Approved 9-lifer
- Registered
- 21/08/08
- Location
- Hasselt
- Posts
- 2,653
- iTrader
- 8 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 5/46
dan zult ge een functie moeten schrijven die de array zal uitprinten
of begrijp ik uw begrip arraylist verkeerd?no votes
-
28-02-2009, 13:52 #10Member
- Registered
- 23/11/03
- Location
- Landeurp
- Posts
- 1,791
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 10/17
Eerst toString() overriden in de klasse van je objecten.
Dan:
of:Code:System.out.println(list);
Code:for (Object item: list) { System.out.println(item); }no votes
-
28-02-2009, 15:42 #11Member
- Registered
- 03/11/03
- Location
- Hove
- Posts
- 6,718
- iTrader
- 3 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 1/3
Java: String Equality (Common Mistake) - enrii.blog
dat dus. misschien gewoon slecht verwoord.Look down at me and you see a fool; look up at me and you see a god; look straight at me and you see yourselfno votes
-
28-02-2009, 16:38 #12
Kheb die maar dan krijg ik bij list de volgende fout in together:
"Type mismatch: cannot convert from element type Persoon to int"
m'n stukje code waarbij klanten de List is
Code:for (int teller : klanten) { System.out.println(teller); }Last edited by Pixie360; 28-02-2009 at 16:57.
no votes
-
28-02-2009, 17:11 #13Member
- Registered
- 17/11/04
- Location
- zeaeazeaz
- Posts
- 1,784
- iTrader
- 1 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/1
Dat is omdat de elementen in je ArrayList van de klasse Persoon zijn (en niet int, zoals je zelf gebruikt. bij een for each lus heb je geen teller nodig)
Wat je dus moet doen :
for (Person persoon : klanten)
.....
alternatief met teller:
for (int teller = 0; teller < klanten.size(); teller++)
{
System.out.println(klanten.get(teller));
}
Wel zorgen dat je een methode toString() in je klasse Persoon hebt die bijvoorbeeld zegt:
public String toString()
{
return "naam : "+naam+" "+familienaam;
// wel zelf uw variabele namen invullen
}no votes
-
28-02-2009, 17:30 #14no votes
-
28-02-2009, 17:50 #15Member
- Registered
- 23/11/03
- Location
- Landeurp
- Posts
- 1,791
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 10/17
Zet eens @Override vóór die toString(), dat is een goede gewoonte.
Code:@Override public String toString() { return "naam : "+naam+" "+familienaam; }no votes

