Sembra che il modo migliore per ottenere la correttezza sia impedire ai programmatori di fare "hacking di stringhe" ... non è giusto scrivere la propria parola a capo automatico, sillabazione, conteggio delle parole, giustificazione, movimento del cursore, ecc. Routine. Tutti i moderni quadri dell'interfaccia utente faranno queste cose per te in questi giorni.
Cioè, l'astrazione con cui di solito lavoreresti è più di un "oggetto di visualizzazione di paragrafo", come per GTK:
http://library.gnome.org/devel/pango/stable/pango-Layout-Objects.html
piuttosto che una stringa grapheme, come ad esempio:
http://library.gnome.org/devel/pango/stable/pango-Glyph-Storage.html
Per accedere a una serie di glifi sono necessarie informazioni disponibili solo a livello di "visualizzazione", quindi la maggior parte degli utilizzi di stringhe potrebbe non disporre di tali informazioni. Ad esempio, devi conoscere il carattere, perché i caratteri possono avere legature diverse.
A parte questo tipo di questione pratica, i glifi probabilmente non sono quello che vuoi.
In molti contesti, si desidera utilizzare gli attributi Unicode corretti, mostrati in questa API ad esempio:
http://library.gnome.org/devel/pango/stable/pango-Text-Processing.html#PangoLogAttr
Come puoi vedere da quella struttura (che riflette gli algoritmi Unicode) fare varie cose ai confini dei glifi non è più corretto che farle ai confini dei caratteri.
Queste due specifiche descrivono gli algoritmi per trovare diversi tipi di confini:
Fare elaborazione del testo implica trovare quei confini con gli algoritmi e quindi lavorare con i confini.
Se inizi a capire quanto sia difficile gestire correttamente tutte le lingue, realizzerai molto rapidamente che hai bisogno di una libreria che guardi interi paragrafi e li gestisca correttamente. Windows, Mac, Linux (Qt e GTK) e Java sono tutti dotati di servizi per questo, inoltre c'è http://site.icu-project.org/ per esempio.
Quando scrivo app Web, sfortunatamente devi praticamente lasciare che il browser (probabilmente aiutato dal sistema operativo) faccia queste cose, per quanto ne so. Tutto quello che puoi fare in JavaScript o sul lato server è rovinarlo.
Forse riassumo la risposta come: la maggior parte della manipolazione di stringhe sul testo in linguaggio naturale è rotta, quindi non c'è molto motivo di preoccuparsi della classe di stringhe, oltre a forse averne una senza metodi ;-)