Zdravicko
Naprogramoval som appku pre android ktora sa pripaja na isty free hosting. Ked taham data zo servera - primam String ktory sa potom snazim rozobrat. Problem je ze do Stringu mi obcas zamiesa daku reklamu. Raz to spravy na zaciatku, inokedy v strede atd. A ja potrebujem tuto reklamu z tohto stringu vyfiltrovat.
Reklama je v tvare
<a id="dake_id" href="http://www.vzdy_ina_domena.cz/spr">spr</a> - prisom reklamu mi zamiesalo do casti slova "spristupnit" a keby
som ju vyfiltroval celu tak mi odsekne aj cast slova spristupnit (odsekne spr a slovo budu uz len istupnit)
Cize najidealnejsie riesenie by bolo keby ste mi poradili napisat Java kod ktory vyfilture cast stringu od znaku < po znak >
Dik
Vyfiltrovanie cast Stringu v Java
-
MarkMarusin
Medium Expert
- Príspevky: 135
- Registrovaný: 30 apr 2011, 13:42
Re: Vyfiltrovanie cast Stringu v Java
String ma metodu indexOf() tak pomocou toho by si mohol spravit nejaky substring.
Re: Vyfiltrovanie cast Stringu v Java
asi najvhodnejšie to bude replacnut cez regexp
niečo takéto
str = str.replaceAll("<a id="(.*?)" href="(.*?)">(.*?)</a>", "");
neviem, či to bude fungovať, v regexpe som začiatočník
niečo takéto
str = str.replaceAll("<a id="(.*?)" href="(.*?)">(.*?)</a>", "");
neviem, či to bude fungovať, v regexpe som začiatočník
-
ChallengerQo
Expert
- Príspevky: 183
- Registrovaný: 05 júl 2009, 17:08
- Bydlisko: Kodaň
Re: Vyfiltrovanie cast Stringu v Java
mne funguje toto:
neviem, či je to presne to, čo potrebuješ, ale tento kód vyselektuje všetko vnútri a za <a> tagom a vypíše to bez toho.. ak potrebuješ aj znaky predtým, tak sa to dá upraviť takto
Kód: Vybrať všetko
String withAd= "<a id=\"dake_id\" href=\"http://www.vzdy_ina_domena.cz/spr\">spr</a>istupnit";
String withoutAd = withAd.replaceAll("<a.*>(.*)</a>(.*)", "$1$2");
System.out.println(withoutAd);
Kód: Vybrať všetko
String withoutAd = withAd.replaceAll("(.*)<a.*>(.*)</a>(.*)", "$1$2$3");Re: Vyfiltrovanie cast Stringu v Java
Kód: Vybrať všetko
String withAd= "<a id=\"dake_id\" href=\"http://www.vzdy_ina_domena.cz/spr\">spr</a>istupnit";
String withoutAd = withAd.replaceAll("<a.*>(.*)</a>(.*)", "$1$2");
-
ChallengerQo
Expert
- Príspevky: 183
- Registrovaný: 05 júl 2009, 17:08
- Bydlisko: Kodaň
Re: Vyfiltrovanie cast Stringu v Java
No z tohto " Problem je ze do Stringu mi obcas zamiesa daku reklamu." podľa mňa vyplýva, že mu presne o to ide. Pokiaľ tam má nejaké ďalšie <a> tagy, tak ich musí nejak odlíšiť od reklamy a to sa dá spraviť tiež v tom regexpe.pcsiete napísal:Nevymaže toto všetky elementy <a>?Kód: Vybrať všetko
String withAd= "<a id=\"dake_id\" href=\"http://www.vzdy_ina_domena.cz/spr\">spr</a>istupnit"; String withoutAd = withAd.replaceAll("<a.*>(.*)</a>(.*)", "$1$2");
-
MarkMarusin
Medium Expert
- Príspevky: 135
- Registrovaný: 30 apr 2011, 13:42
Re: Vyfiltrovanie cast Stringu v Java
Dakujem vam pani, nasiel som si medzi odpovedami tu spravnu ktora mi funguje 