[Java]String(Buffer), char[] routines herschrijven

Pagina: 1
Acties:

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Ik heb voor mezelf een aantal handige functies gemaakt om te kunnen zoeken en evt vervangen in Strings,StringBuffers en arrays van chars, omdat bij de objecten zelf niet alle functionaliteit zit die ik zoek, bv replaceIgnoreCase.

Ik durf te wedden dat er veel meer mensen zijn die dit probleem hebben en hier wat routines voor hebben geschreven, met al gevolg dat we het wiel weer uitvinden.

Misschien is het een idee om met wat andere java programmeurs een open source library te maken. Ik weet niet hoeveel belangstelling hiervoor is, maar aangezien dit niet een onbestuurbaar groot geheel is, schat ik de slagings kansen van dit project wel redelijk hoog in.

Als iedereen die hier wel belangstelling bij heeft, wil reageren, dan kunnen we misschien met zijn allen iets opzetten. Tis natuurlijk ook leuk om kennis op te doen over gezamelijke open source ontwikkeling. Eventueel zouden we sourcefourge kunnen gebruiken en cvs om de versies een beetje onder controle te houden.

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:01
Alarmnummer:
Ik durf te wedden dat er veel meer mensen zijn die dit probleem hebben en hier wat routines voor hebben geschreven, met al gevolg dat we het wiel weer uitvinden.

Misschien is het een idee om met wat andere java programmeurs een open source library te maken. Ik weet niet hoeveel belangstelling hiervoor is, maar aangezien dit niet een onbestuurbaar groot geheel is, schat ik de slagings kansen van dit project wel redelijk hoog in.
Sounds een beetje als de 'codebase' (topic vind je hier wel ergens).
Dit is zeker wel een initiatief waar wel toekomst in zit, maar waarom dit beperken tot enkel Java? Misschien is het beter om voor iedere veel gebruikte (Java, Delphi, C++, VB en binnenkort misschien C#) een open source lib te maken.

We kunnen de broncode dan inderdaad wel beter in een SourceSafe of PVCS version-control systeem droppen. Dan kunnen we die broncode ook direct downloaden ipv te moeten copy/pasten ofzo uit een of ander GoT topic.

Er kan dan meteen ook een soort DRS systeem aan gekoppeld worden waar 'auteurs' hun code kunnen publiceren en wat meta-informatie over die code meegeven, zodat zoeken gemakkelijker wordt.

Er zit echt wel wat in, goed idee!

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:01
Even off-topic misschien, maar de topic-title is niet echt relevant. Misschien even wijzigen...

https://fgheysels.github.io/


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Volgens mij kan ik dat niet doen we moeten even wachten op wasigh :) En de reden dat ik het alleen doe voor java is dat het anders weer heel ingewikkeld gaat worden en ik wil het juist zo simpel mogelijk houden.

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:01
Op zaterdag 08 december 2001 18:13 schreef Alarmnummer het volgende:
Volgens mij kan ik dat niet doen we moeten even wachten op wasigh :) En de reden dat ik het alleen doe voor java is dat het anders weer heel ingewikkeld gaat worden en ik wil het juist zo simpel mogelijk houden.
Het het ondertussen in LA gevraagd.

Ik denk dat als je meer talen ondersteunt het juist veel interessanter gaat worden. En wat voor werk heb je er meer aan ? niet veel toch?
Gewoon voor iedere taal een ander SourceSafe project ofzo.

https://fgheysels.github.io/


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Maar op welke manier gaan die projecten met elkaar contact houden? Als je dat niet doet, dan loop je de kans dat alles volledig anders word opgezet. En doordat de talen qua structuur anders zijn heb je ook verschillende behoeftes. En ik denk dat voor c en c++ al enorm veel string routines zijn gemaak. Ik vraag mij dan ook af of er aan die kant voldoende belangstelling is.

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:01
Op zaterdag 08 december 2001 18:23 schreef Alarmnummer het volgende:
Maar op welke manier gaan die projecten met elkaar contact houden? Als je dat niet doet, dan loop je de kans dat alles volledig anders word opgezet. En doordat de talen qua structuur anders zijn heb je ook verschillende behoeftes. En ik denk dat voor c en c++ al enorm veel string routines zijn gemaak. Ik vraag mij dan ook af of er aan die kant voldoende belangstelling is.
Dit hoeft toch niet enkel om string-handling routines te gaan? Ik stel het mij voor als een gigantische code-base die code bevat over tig onderwerpen/problemen.

https://fgheysels.github.io/


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Dat zou inderdaad heel leuk zijn. Maar de meeste projecten zijn gesneuveld omdat men te veel wil en er te weinig ervaring is. We kunnen de lib natuurlijk uitbreiden met allerlei soorten routines, maar we moeten oppassen dat het geen oncontroleerbare brei gaat worden. Vandaar eerst een paar handige objecten en als dat een beetje loopt kunnen we altijd nog gaan uitbreiden.

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:01
Op zaterdag 08 december 2001 19:14 schreef Alarmnummer het volgende:
Dat zou inderdaad heel leuk zijn. Maar de meeste projecten zijn gesneuveld omdat men te veel wil en er te weinig ervaring is. We kunnen de lib natuurlijk uitbreiden met allerlei soorten routines, maar we moeten oppassen dat het geen oncontroleerbare brei gaat worden. Vandaar eerst een paar handige objecten en als dat een beetje loopt kunnen we altijd nog gaan uitbreiden.
Indeed, you've got a point.
Maar zo moeilijk kan het toch niet zijn om een basic - systeem op te bouwen. Een website waar je al je gegevens over de code kan in inputten, in een DB stoppen. Bestaan er eigenlijk web-gebaseerde sourcecontrol proggies? Dan zijn we daar ook al een hele stap verder.

https://fgheysels.github.io/


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
sourcefourge.net :) dus de software en webspace zijn geen probleem. Nu nog de animo, ervaring en doorzettingsvermorgen.

[edit] oeps per ongeluk naar pornosite gelinkt :)

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:01
Op zaterdag 08 december 2001 19:29 schreef Alarmnummer het volgende:
www.sourcefourge.net :) dus de software en webspace zijn geen probleem. Nu nog de animo, ervaring en doorzettingsvermorgen.
'k heb een aantal jaar geleden eens voor m'n stage een DRS ontwikkeld. Dit was in ASP, maar misschien is het beter om dit in Java (Servlets , JSP) of in C# te brouwen?

erg eigenlijk dat er blijkbaar geen interesse is van andere tweakers

https://fgheysels.github.io/


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Op zaterdag 08 december 2001 19:31 schreef whoami het volgende:

[..]
erg eigenlijk dat er blijkbaar geen interesse is van andere tweakers
Het is weekend :) ik gooi hem anders maandag nog wel even omhoog, want dan is iedereen wel weer nuchter :D

  • roelio
  • Registratie: Februari 2001
  • Niet online

roelio

fruitig, en fris.

Gaaf idee dat zeker. Inderdaad is het in eerste instantie echt een goed plan om het tot bijvoorbeeld Java te beperken. Waarom? Daar zijn veel mensen mee bezig (al of niet via hun studie) en als je meteen met meerdere talen start is de kans groot dat bepaalde talen "doodbloeden". Het is in het begin veel mooier en handiger om één taal te doen zodat daarop geconcentreerd wordt en de vooruitgang in het project duidelijk zichtbaar is.

Ik vind het een erg goed idee, SourceForge is zeker een optie. Maar mijn vraag is dan: voor C en C++ zijn al zo ongelooflijk veel (uitgebreide) libraries beschikbaar met extra of vervangende (betere) functionaliteit, is dit met Java dan niet net zo? Ben wel veel met Java bezig maar nog niet veel met het checken van libraries van anderen. Iemand die hier meer info over heeft? Ik ga zelf zo ook ff checken...

AMD Phenom II X4 // 8 GB DDR2 // SAMSUNG 830 SSD // 840 EVO SSD // Daar is Sinterklaas alweer!!


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Ik heb al overal zitten zoeken naar goeie string libs. Ik maar 1 lib gevonden en daar zat niet de functionaliteit in die ik zocht. Ik wil het wil inderdaad niet 2 keer uitvinden, dus als er al iets is hou ik me aanbevolen.

Maar het lijkt me ook leuk om wat ervaring op te doen met een opensource project en het is natuurlijk altijd leuk om met zijn allen daar ook iets nuttigs mee te maken. En wie kan er nou niet een goeie string lib gebruiken? :)

En we kunnen later ook natuurlijk andere objecten erin plaatsen.

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
Ik vind het een goed idee. String functies interesseren mij ook wel. Maar wat voor functies zou je nog meer in de library willen hebben, naast replaceIgnoreCase ? :)

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
[edit] rot browser.. dubbelpost dus :(

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Op zaterdag 08 december 2001 20:33 schreef marcusk het volgende:
Ik vind het een goed idee. String functies interesseren mij ook wel. Maar wat voor functies zou je nog meer in de library willen hebben, naast replaceIgnoreCase ? :)
voor string,stringbuffer char array en evt Segment
http://java.sun.com/j2se/1.4/docs/api/javax/swing/text/Segment.html
om maar een paar te noemen:
find findIgnoreCase lastFind lastFindIgnoreCase
replace replaceIgnoreCase lastReplace lastReplaceIgnoreCase

en dan hetzelfde maar dan met regular expressions.

Ik weet dat niet bijzonder veel werk is, maar op dit moment schiet me niet veel meer te binnen.

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
Op zaterdag 08 december 2001 20:52 schreef Alarmnummer het volgende:
en dan hetzelfde maar dan met regular expressions.
die zitten toch al in http://java.sun.com/j2se/1.4/docs/api/java/util/regex/Matcher.html ?
Ik weet dat niet bijzonder veel werk is, maar op dit moment schiet me niet veel meer te binnen.
Als je iets gebruikt als Boyer-Moore kan het volgens mij nog best lastig worden :)

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Op zaterdag 08 december 2001 21:07 schreef marcusk het volgende:

die zitten toch al in http://java.sun.com/j2se/1.4/docs/api/java/util/regex/Matcher.html ?
maar ook voor de StringBuffer en char array?
Als je iets gebruikt als Boyer-Moore kan het volgens mij nog best lastig worden :)
Nou wordt het interessant :)

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
Op zaterdag 08 december 2001 21:21 schreef Alarmnummer het volgende:
maar ook voor de StringBuffer en char array?
nee, maar je kunt toch StringBuffer.toString() en new String(char[]) gebruiken?
Nou wordt het interessant :)
:)

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Op zaterdag 08 december 2001 21:51 schreef marcusk het volgende:

[..]

nee, maar je kunt toch StringBuffer.toString() en new String(char[]) gebruiken?
[..]

:)
Is ook een mogelijkheid die ik zelf ook een tijdje gebruikt hebt, maar het is enorm traag! Vandaar :)

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
Op zaterdag 08 december 2001 22:03 schreef Alarmnummer het volgende:
Is ook een mogelijkheid die ik zelf ook een tijdje gebruikt hebt, maar het is enorm traag! Vandaar :)
ic :)

Ik heb een tijdje geleden een regex lib geschreven in C++ (gewoon voor de lol, geen speciale features ofzo). Als je er (nog) een voor Java wil maken wil ik zeker wel meehelpen :)

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
dit kun je allemaal bij http://sourcefourge.com krijgen.
http://sourceforge.net/docman/display_doc.php?docid=753&group_id=1

oa tot 100 mb webspace, vcs etc.. dit lijkt me dus wel een goeie plek om het op te starten.

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Wat wil je precies bereiken? Het is mij eigenlijk niet helemaal duidelijk.... Een reguliere expressie library is er nu al in Java, dus dat hoeft niet meer te gebeuren. Alle mogelijke vervangings-problemen implementeren met ontzettend veel varianten lijkt mij eigenlijk ook niet erg zinvol omdat je dan denk ik vrij vaak toch net iets specifiekere eisen zult hebben. Je moet dan vaak teveel aannames maken ben ik bang.

Misschien is het leuker om een goede transformatie library te maken voor Strings, waarin je dus zelf je transformaties kunt specificeren?

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:01
Ik denk dat Alarmnummer en ik een beetje naast elkaar aan het praten waren.
Als ik het goed begrijp, Alarmnummer, wil jij dus eigenlijk een class library schrijven voor die stringhandling routines?

Ik had het eerder op het ontwikkelen van een soort 'code-base' (zoals dat topic dat hier ergens ronddwaalt), maar dan webgebaseerd en wel zo dat iemand zijn nuttige source in die database kwijt kon.

https://fgheysels.github.io/


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Het lijkt me leuk als we het gaan uitbreiden en een algemene GOT codebase kunnen maken. Maar ik zie hier zoveel project oproepen en die sterven allemaal een stille dood omdat er niet genoeg animo is, of te weinig ervaring of het veel te complex is. Vandaar dat ik het klein wou houden, maar als er veel belangstelling is, kunnen we natuurlijk ook iets groters gaan opzetten.

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Op zondag 09 december 2001 01:45 schreef mbravenboer het volgende:
Wat wil je precies bereiken? Het is mij eigenlijk niet helemaal duidelijk.... Een reguliere expressie library is er nu al in Java, dus dat hoeft niet meer te gebeuren. Alle mogelijke vervangings-problemen implementeren met ontzettend veel varianten lijkt mij eigenlijk ook niet erg zinvol omdat je dan denk ik vrij vaak toch net iets specifiekere eisen zult hebben. Je moet dan vaak teveel aannames maken ben ik bang.

Misschien is het leuker om een goede transformatie library te maken voor Strings, waarin je dus zelf je transformaties kunt specificeren?
Wat ik oa wil is een snelle string, stringbuffer etc routines. En daarnaast lijkt het me leuk om wat open source ervaring op te doen en met zijn allen een lib te bouwen waar we allemaal iets aan hebben. En ik ben ook zeker niet vies van andere objecten. Kan altijd wel een paar goeie gui componenten gebruiken :)

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Is de topictitle zo beter? :)
Beetje ranzig geworden vanwege de maximum lengte die er aan zit, maarja.

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Hum, als ik het goed begrijp wil je je dus voornamelijk op functies over Strings en StringBuffer en char[]. Uiteraard zijn Strings en Stringbuffers allebei al CharSequences, dus dat kan mooi generiek. Voor char[] kan je ook wel een high performance char sequence wrapper maken.

Ik denk dat het belangrijkste probleem is: waarvoor schrijf je functies? Je kunt natuurlijk alle mogelijke transformaties gaan bedenken en hiervan een functie maken, maar ik denk dat het lib dan zeer snel erg onoverzichtelijk wordt en dat hij door te specifieke wensen nog vaak niet aan de wensen van de gebruiker kan voldoen.

Ik zie eigenlijk nog een andere leuke mogelijkheid: een library voor transformaties over Strings. Met behulp van pattern-matching en rewriting regels kan je in een leuk taaltje aangeven wat je wilt herschrijven. Dit wordt geinterpreteerd of zelfs gecompileerd (naar Java) en daarbij zwaar geoptimaliseerd. Zo heb je een mooi declaratieve taal voor high-performance string herschrijvingen. Uiteraard heeft dit erg veel links met XSLT en Stratego :) .

Wat vind je dervan?

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Op zondag 09 december 2001 14:03 schreef mbravenboer het volgende:
Hum, als ik het goed begrijp wil je je dus voornamelijk op functies over Strings en StringBuffer en char[]. Uiteraard zijn Strings en Stringbuffers allebei al CharSequences, dus dat kan mooi generiek. Voor char[] kan je ook wel een high performance char sequence wrapper maken.

Ik denk dat het belangrijkste probleem is: waarvoor schrijf je functies? Je kunt natuurlijk alle mogelijke transformaties gaan bedenken en hiervan een functie maken, maar ik denk dat het lib dan zeer snel erg onoverzichtelijk wordt en dat hij door te specifieke wensen nog vaak niet aan de wensen van de gebruiker kan voldoen.

Ik zie eigenlijk nog een andere leuke mogelijkheid: een library voor transformaties over Strings. Met behulp van pattern-matching en rewriting regels kan je in een leuk taaltje aangeven wat je wilt herschrijven. Dit wordt geinterpreteerd of zelfs gecompileerd (naar Java) en daarbij zwaar geoptimaliseerd. Zo heb je een mooi declaratieve taal voor high-performance string herschrijvingen. Uiteraard heeft dit erg veel links met XSLT en Stratego :) .

Wat vind je dervan?
Het 1e wat ik in gedachten had waren eigelijk simpele functies om ontbrekende functionaliteit bij de string, stringbuffer en char[] (en evt textsegment) aan te vullen. En ik ben daarbij niet bang om te verdrinken in een overkill aan functionaliteit.

Bij een StringBuffer ontbreekt bijvoorbeeld de findIgnoreCase en de meeste mensen converteren de buffer dan ook naar een string en roepen daarop de findIgnoreCase aan. Maar doordat je aan het converteren gaat (soms meerdere keren omdat het op lager niveau ook weer gebeurd) krijg je een gigantische geheugenverbruik doordat je soms grote strings heb. Dit is maar 1 voorbeeldje van missende functionaliteit die met hele simpele maar wel snelle routines opgelost kunnen worden.

Ik weet niet in welke mate bij Regex deze functionaliteit aanwezig is, maar soms moet je oplossingen ook simpel houden omdat je de rest toch niet gebruikt. Vandaar dat ik in 1e instantie een simpele lib wou maken. Maar met Regex is je uitdrukkingskracht veel groter en die kan in sommige gevallen zeker handiger zijn dan die simpele routines. En het lijkt me heel nuttig (naast de ontwikkeling van een reek 'simpele maar wel snelle' routines ook een aantal hele intelligente string(char sequence) routines te schrijven mbv bv Regex.

Misschien is het ook een idee om een oproep tot een algemene codebase voor java te doen, maar ben bang dat dit project een stille dood zal sterven omdat er in het begin te grote plannen zijn gemaakt.

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
En het lijkt me daarnaast ook heel leerzaam om mee te werken aan een open source project, cvs etc. En je leert natuurlijk altijd weer iets van anderen.

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Ik denk dat je het beste de functies die je nodig hebt zelf kunt implementeren. Als het goed begint te worden en je het idee hebt dat meer mensen dit kunnen gebruiken kan je besluiten om het open-source te maken op Sourceforge oid. Voorlopig denk ik dat het lastig opboxen is tegen de power van reguliere expressies...

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment

Pagina: 1