Portál AbcLinuxu, 12. května 2025 06:24

Dotaz: JAVA string. replaceAll co je špatně?

5.1.2011 09:45 miki.lbc | skóre: 7
JAVA string. replaceAll co je špatně?
Přečteno: 551×
Odpovědět | Admin
Zdravím, potřeboval bych poradit s Javou. Mám následující program:
        String s="text 2010-12-01 text";
        s=s.replaceAll("0.12", "0");
        System.out.println(s);
Celkově mi to přijde jednoduchý a čekal bych, že to nic nenahradí. Můžete mi prosím někdo vysvětlit poč je výsledkem:

text 2010-01 text

Děkuji Miki

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

5.1.2011 09:49 Ivo
Rozbalit Rozbalit vše Re: JAVA string. replaceAll co je špatně?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Asi preto ze prvy parameter v replaceAll nie je jednoduchy String ale vyraz, kde '.' znamena hocijaky znak. Tak ze v tvojom pripade sa '0-12' nahradi '0'.

Skus pouzit s=s.replaceAll("0\.12", "0");

5.1.2011 10:06 miki.lbc | skóre: 7
Rozbalit Rozbalit vše Re: JAVA string. replaceAll co je špatně?
"\." je neplatná escape skvence
5.1.2011 10:37 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: JAVA string. replaceAll co je špatně?
"\\."
In Ada the typical infinite loop would normally be terminated by detonation.
5.1.2011 10:37 kuka
Rozbalit Rozbalit vše Re: JAVA string. replaceAll co je špatně?
jiste ze je, backslashe tam musi byt dva - takove veci bys ale mel zvladnout sam
5.1.2011 10:49 Vasek
Rozbalit Rozbalit vše Re: JAVA string. replaceAll co je špatně?
To proto, ze se vam escapuje ten string pri kompilaci, ne zadavany regexp. Aby to fungovalo, musite to napsat jako "\\." Tim vyescapujete lomitko, ktere se Vam ulozi do stringu a pak za nej tecka, stroj na regexpy to pak pochopi jako vyescapovanou tecku.
5.1.2011 10:38 chearius | skóre: 7 | blog: /dev/chearius | Heidelberg
Rozbalit Rozbalit vše Re: JAVA string. replaceAll co je špatně?
s=s.replaceAll("0\\.12", "0");
5.1.2011 10:44 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: JAVA string. replaceAll co je špatně?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Stačí podívat se na JavaDoc k funkci String.replaceAll(), a hned z názvu parametru nebo nejpozději z první věty dokumentace zjistíte, že první parametr není text, ale regulární výraz.
5.1.2011 10:44 miki.lbc | skóre: 7
Rozbalit Rozbalit vše Re: JAVA string. replaceAll co je špatně?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Všem moc díky. Myslel jsem, že jsou to dva stringy.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.