Porovnavani retezcu

Roman Pichlík roman.pichlik na asei.cz
Čtvrtek Leden 29 12:01:45 CET 2004


> porovnavate dve textove konstanty a ,pokud se nepletu, dle specifikace by
> od kazde textove konstanty mela v ramci VM existovat jen jedna instance.

IMHO ne mela, ale muze => zalezi na implementaci VM

S pozdravem Roman "Dagi" Pichlik

/* http://www.sweb.cz/pichlik/ Blog pro kodery */


> -----Original Message-----
> From: konference-bounces na java.cz [mailto:konference-bounces na java.cz]On
> Behalf Of Jaroslav Kameník
> Sent: Thursday, January 29, 2004 11:50 AM
> To: Java
> Subject: Re: Porovnavani retezcu
>
>
> > muze mi nekdo vysvetlit jak funguje porovnavani retezcu v jave?
> Napriklad
> v C# funguje konstrukce:
> > String str = "ales";
> > if (str == "ales") { neco; }; ?
>
> > ale v jave je tato podminka porad false. Proc? Vim sice o moznosti
> str.equals, ale zajima me to spis z principu...
>
> A tohle je presne zneni kodu nebo je to jen zjednoduseny priklad?
> Ono zrovna v tomhle tvaru by to imho melo naopak stale vracet
> true, protoze
> porovnavate dve textove konstanty a ,pokud se nepletu, dle specifikace by
> od kazde textove konstanty mela v ramci VM existovat jen jedna instance.
>
> jinak plati to, co uz sem psali ostatni, == testuje identitu
> objektu, equals
> ekvivalenci.
>
> takze napr. pro nasledujici retezce vytvorene az za behu VM
> System.out.println(Integer.toString(123456789) ==
> Integer.toString(123456789)); ===> false
>
> System.out.println(Integer.toString(123456789).equals(Integer.toSt
> ring(12345
> 6789))); ===> true
>
> V C# se moc nevyznam, ale predpokladam, ze to tam funguje tak, ze maji
> pretizeny operator ==   (FUUJ;)
>
>
>
> Jarda
>
>




Další informace o konferenci Konference