[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