[Java lista] Mutassatok nekem jopofa String osztalyt vagy javasoljatok okos metodust
ern0
ern0 at linkbroker.hu
2008. Ápr. 11., P, 14:53:59 CEST
Egyreszt keszulok egy nem tul nagy, de fontos projektre, masreszt mivel
kisse meg sutan mozgok CPP-ben, gyakorlaskepp, harmadreszt mivel a
standard csomagban erkezo nem igazan fedi le kivansagaimat, irtam egy
String class-t.
Egesz biztos, hogy nagyon hosszu a sora azoknak, akik ezt megtettek mar,
de mint irtam, csak kb. 1/3 reszben motivalt az, hogy szuksegem volt ra.
Ami miatt titeket gyotorlek ezzel az egesszel, az az, hogy tervezem,
kidobom publikusba, es hogy masok szamara is hasznos legyen (bar az en
szajizemnek megfelel), adjatok otleteket, milyen metodusokat kellene
implementalnom. (Nem mellesleg, hatha tanulok belole valamit.)
Vagy ha van kedvenc String class-otok, akkor lokjetek a doksijanak az
URL-jet. Amit a cpp std string class tud, azt tudja, meg a Java
String/StringBuffer feature-oket is fogja tudni. Talan leginkabb a PHP
string-kezelese inspiralt.
A regexpet utalom, de errol most ne nyissunk vitat.
Par szot akkor a class-rol: van benne egy char[], aminek a merete
dinamikusan no adott (#define) lepeskozzel (if (bufferSize < reqSize) {
malloc(newBuffer); memcpy(); free(oldBuffer); }). Nincs benne semmi UTF8
kezeles, nem is tervezem. A celja az, hogy jol tudjak parsolgatni
egyszeru szoveges adatokat, logokat. XML parsert mar talaltam
megfelelot, de amelle meg kell, hogy mondjuk egy IP-cimet tudjak
splittelni, vagy vesszovel, akarmivel elvalsztott ertekeket ki tudjak
szedegetni barhonnan. A sebessegre optimalizalas nem volt szempont, igy
megengedhettem, hogy a visszateresi ertekek a copyconstructoron
keresztul masirozzanak vissza a hivohoz, viszont ezert memleak sem lesz.
A ket legfontosabb, amit hasznalok, ezek a PHP-sek:
String split(String& splitter,int begin,int end);
void replace(String& original,String &replacement);
na meg:
int splitCount(const String& splitter) const;
Nehany filenevvel kapcsolatos:
String getFilePath() const; // aut. slash/backslash detekt
String getFileName() const;
String getFileExt() const;
void eraseFileExt();
String cutFileExt();
void replaceFileExt(String& ext);
Persze van copyconstructor meg op overload rendesen:
String& operator=(const String& rvalue);
String& operator=(int rvalue);
bool operator==(const String& value);
SQL-hez meg scriptekhez csip-csup dolgok:
void trim();
void trimTail();
void quote(char qmark); // idezojelekbe rakja
void singleQuote();
void doubleQuote();
Persze, a legtobb metodushoz van String&, char *, char, sot, int
parameter verzio. Vagy a split-nel lehet negativ szamot megadni, azaz
String("Stuff.release.date.zip").split(".",-1) = "zip".
Szoval, kinek mi a kedvenc string utilja/muvelete?
--
ern0.scene.plus4.amiga.code.muzak
Haben Sie Fragen?
További információk a(z) Javalist levelezőlistáról