Python String (str)                         (C) 2020-2021 T.Birnthaler OSTC GmbH
===================

Doku --> docs.python.org/3/library/stdtypes.html#str
     --> docs.python.org/3/library/stdtypes.html#string-methods

Strings in Python sind seit Python 3.0 Sequenzen von Unicode-Einzelzeichen
codiert im Format UTF-8, d.h. jedes Zeichen belegt 1-4 Bytes. In Python 2.x
wurden Strings noch durch Einzelbyte-Zeichen dargestellt (z.B. ISO-8859).

  "hallo welt"    # Unicode-String (in P3 automatisch)
  u"hallo welt"   # Unicode-String (in P2 notwendig, in P3 Standard)
  ""              # Leerer String

Folgende Operationen werden von Strings zusätzlich zu den allgemeinen und
immutable Sequenz-Operationen unterstützt (R, S, T sind Strings, I, J, W sind
Ganzzahlen, C ist ein Zeichen, D ist ein Dictionary, L ist eine Liste von
Strings, ENC ist ein Encoding):

ACHTUNG: Die Sequenz S bleibt unverändert, neuer String kommt als Ergebnis zurück.

+-----------------------+------------------------------------------------------+
| Operation             | Bedeutung                                            |
+-----------------------+------------------------------------------------------+
| S.lower()             | Kleinschreibung                                      |
| S.upper()             | Grossschreibung                                      |
| S.swapcase()          | Gross/Kleinschreibung vertauschen                    |
| S.capitalize()        | 1. Buchstaben gross schreiben                        |
| S.title()             | Alle Worte beginnen mit Grossbuchstaben, Rest klein  |
+-----------------------+------------------------------------------------------+
| S.startswith(T,I,J)   | Beginnt mit Text T?                                  |
| S.endswith(T,I,J)     | Endet mit Text T?                                    |
+-----------------------+------------------------------------------------------+
| S.removeprefix(T)     | Falls S mit T beginnt, T entfernen               3.9 |
| S.removesuffix(T)     | Falls S mit T endet, T entfernen                 3.9 |
+-----------------------+------------------------------------------------------+
| S.count(T,I,J)        | Anzahl Vorkommen von T                               |
| S.find(T,I,J)         | Von links Treffer-Index von T finden (-1 wenn nein)  |
| S.index(T,I,J)        | Wie S.find(), ValueError statt -1 falls kein Treffer |
| S.rfind(T,I,J)        | Von rechts Treffer-Index von T finden (-1 wenn nein) |
| S.rindex(T,I,J)       | Wie S.rfind(), ValueError statt -1 falls kein Treffer|
+-----------------------+------------------------------------------------------+
| S.isalnum()           | Nur Buchstaben oder Ziffern? (mind. 1)               |
| S.isalpha()           | Nur Buchstaben? (mind. 1)                            |
| S.isdigit()           | Nur Ziffern? (mind. 1)                               |
| S.islower()           | Nur Kleinbuchstaben? (mind. 1)                       |
| S.isspace()           | Nur Leerraum? (mind. 1)                              |
| S.istitle()           | Alle Worte starten mit Grossbuchstaben, Rest klein?  |
| S.isupper()           | Nur Grossbuchstaben? (mind. 1)                       |
+-----------------------+------------------------------------------------------+
| S.lstrip(C)           | Leerraum oder Zeichen C links entfernen              |
| S.rstrip(C)           | Leerraum oder Zeichen C rechts entfernen             |
| S.strip(C)            | Leerraum oder Zeichen C links + rechts entfernen     |
+-----------------------+------------------------------------------------------+
| S.center(W,C)         | Zentriert in Breite W mit Füllz. C (STD: Space)      |
| S.ljust(W,C)          | Linksbündig in Breite W mit Füllz. C (STD: Space)    |
| S.rjust(W,C)          | Rechtsbündig in Breite W mit Füllz. C (STD: Space)   |
| S.zfill(W)            | Links in Breite W mit "0" auffüllen                  |
+-----------------------+------------------------------------------------------+
| S.join(L)             | Verketten der Elemente in L getrennt durch S         |
| S.split(C,MAX)        | Teile-Liste von links anhand Trennzeichen C          |
| S.rsplit(C,MAX)       | Teile-Liste von rechts anhand Trennzeichen C         |
| S.splitlines()        | Zeilen-Liste anhand Zeilentrenner "\n"               |
+-----------------------+------------------------------------------------------+
| S.partition(C)        | Zerlegen in (Head, C, Tail) am 1. C von links        |
| S.rpartition(C)       | Zerlegen in (Head, C, Tail) am 1. C von rechts       |
+-----------------------+------------------------------------------------------+
| S.replace(T,R,MAX)    | T durch R ersetzen (alle oder Anzahl MAX)            |
| S.translate(D)        | Zeichen-Key in D durch Value ersetzen oder löschen   |
| S.expandtabs(W)       | Tabulatoren (Breite W) durch Leerzeichen ersetzen    |
+-----------------------+------------------------------------------------------+
| S.decode(ENC,ERR)     | Decodieren gemäß Codierung ENC                       |
| S.encode(ENC,ERR)     | Codieren gemäß Codierung ENC                         |
| S.format(...)         | Werte ... für Platzhalter {} in S einsetzen          |
+-----------------------+------------------------------------------------------+

* ERR kann "strict", "ignore", "replace" und "xmlcharrefreplace" sein.

* Leerraum (Whitespace) ist eine beliebig lange Folge folgender Zeichen:

    +-----+----+--------------------------+
    | \t  |  9 | (Horizontaler) Tabulator |
    | \n  | 10 | Newline                  |
    | \v  | 11 | Vertikaler Tabulator     |
    | \f  | 12 | Form Feed                |
    | \r  | 13 | Carriage Return          |
    | " " | 32 | Leerzeichen              |
    +-----+----+--------------------------+