This shows you the differences between two versions of the page.
|
de:p5:basics:lesson12 [2009/03/19 00:13] steffen created |
de:p5:basics:lesson12 [2009/04/01 22:03] (current) steffen |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Arbeiten mit Texten ====== | ====== Arbeiten mit Texten ====== | ||
| - | Aus Lesson X sind uns Zeichenketten (in Processing mit //String// betitelt) bekannt. Sie beinhalten Informationen über Schriftzeichen die wir mit //text()// abbilden können. Anders als bei //int// und //float// handelt es sich bei //String// um einen komplexen Datentyp. Dies erkennen wir an der Großschreibung und dem nicht orange eingefärbt werden im Processing Texteditor. Komplexe Datentypen besitzen einen erweiterten Umfang von Speicher- und/oder Funktionsmöglichkeiten. Beispielsweise erlauben uns Variablen vom Typ //PImage// mittels der Punktschreibweise und des Befehls //width// (''myPImage.width'') die Breite von Bilddokumenten auszulesen. Primitive Datentypen hingegen haben nur die Funktion einen Wert zu speichern. | + | Aus [[de:p5:basics:lesson3#datentypen|Lesson 3]] sind uns Zeichenketten (in Processing mit //String// betitelt) bekannt. Sie beinhalten Informationen über Schriftzeichen die wir mit //text()// abbilden können. Anders als bei //int// und //float// handelt es sich bei //String// um einen komplexen Datentyp. Dies erkennen wir an der Großschreibung und dem nicht orange eingefärbt werden im Processing Texteditor. Komplexe Datentypen besitzen einen erweiterten Umfang von Speicher- und/oder Funktionsmöglichkeiten. Beispielsweise erlauben uns Variablen vom Typ //PImage// mittels der Punktschreibweise und des Befehls //width// (''myPImage.width'') die Breite von Bilddokumenten auszulesen. Primitive Datentypen hingegen haben nur die Funktion einen Wert zu speichern. |
| Zeichenketten (//String// Variablen) sind ähnlich wie Arrays aufgebaut. Alle Schriftzeichen sind in einer Art Liste abgelegt die durchnummeriert bei 0 beginnt und bei der Anzahl der Zeichen minus 1 endet. Da wir nicht davon ausgehen können den abzubildenden Text in gewünschte Form vorliegen zu haben, bzw. der Text nur analysiert und die Ergebnisse visualisiert werden sollen, bietet Processing ein Set an Werkzeugen. | Zeichenketten (//String// Variablen) sind ähnlich wie Arrays aufgebaut. Alle Schriftzeichen sind in einer Art Liste abgelegt die durchnummeriert bei 0 beginnt und bei der Anzahl der Zeichen minus 1 endet. Da wir nicht davon ausgehen können den abzubildenden Text in gewünschte Form vorliegen zu haben, bzw. der Text nur analysiert und die Ergebnisse visualisiert werden sollen, bietet Processing ein Set an Werkzeugen. | ||
| Line 75: | Line 75: | ||
| } | } | ||
| </code> | </code> | ||
| - | |||
| ===== Text modifizieren ===== | ===== Text modifizieren ===== | ||
| Wie beim Auslesen bietet uns Processing ein Set an Tools Texte zu verändern. Angefangen bei der Funktionalität Inhalte von überschüssigen Leerzeichen am Anfang & Ende zu bereinigen bis hin zu komplexen Extrahiermethoden. Die Vorgehensweisen teilen sich in die Gruppe der Exakten, mit Regelanwendungen anhand genauer Positionsangaben, und die Unexakten. Meist ist die Struktur bzw. der Aufbau des Textes unbekannt. In diesem Fall kommt es zur Anwendung der unexakten Methoden. Beispielsweise benötigt man immer die ersten drei Sätze, ohne deren Länge zu berücksichtigen. Als Lösung teilen wir unseren Text in Textschnippsel, getrennt wird immer am Satzende – der Position im Text wo ein Punkt gesetzt ist. | Wie beim Auslesen bietet uns Processing ein Set an Tools Texte zu verändern. Angefangen bei der Funktionalität Inhalte von überschüssigen Leerzeichen am Anfang & Ende zu bereinigen bis hin zu komplexen Extrahiermethoden. Die Vorgehensweisen teilen sich in die Gruppe der Exakten, mit Regelanwendungen anhand genauer Positionsangaben, und die Unexakten. Meist ist die Struktur bzw. der Aufbau des Textes unbekannt. In diesem Fall kommt es zur Anwendung der unexakten Methoden. Beispielsweise benötigt man immer die ersten drei Sätze, ohne deren Länge zu berücksichtigen. Als Lösung teilen wir unseren Text in Textschnippsel, getrennt wird immer am Satzende – der Position im Text wo ein Punkt gesetzt ist. | ||
| Exakte Funktionen erfordern qualitativ hochwertige Daten/Texte. Das Resultat des Programms hängt von der Struktur des Texten, der genauen Einhaltung der Zeichenabfolge, ab. | Exakte Funktionen erfordern qualitativ hochwertige Daten/Texte. Das Resultat des Programms hängt von der Struktur des Texten, der genauen Einhaltung der Zeichenabfolge, ab. | ||
| - | * **split()** zerteilt eine Zeichkette an vordefinierten Zeichen in seperate Zeichenketten. Das Resultat ist ein Array aus //String//-Objekten. Das zum Zerteilen benutzte Zeichen (auch split token genannt) wird aus den resultierenden Teilzeichenketten entfernt. [[http://www.processing.org/reference/split_.html|siehe Referenz]] | + | * **split()** zerteilt eine Zeichkette an vordefinierten Zeichen in seperate Zeichenketten. Das Resultat ist ein Array aus //String//-Objekten. Das zum Zerteilen benutzte Zeichen (auch split token genannt) wird aus den resultierenden Teilzeichenketten entfernt. [[http://www.processing.org/reference/split_.html|siehe Referenz]]<code> |
| - | <code> | + | |
| String names = "Ursula,Uwe Kowalski,Beate,Peggy Schmidt,Max"; | String names = "Ursula,Uwe Kowalski,Beate,Peggy Schmidt,Max"; | ||
| String[] arr = split (names, ","); | String[] arr = split (names, ","); | ||
| Line 87: | Line 85: | ||
| println (arr[2]); // Peggy | println (arr[2]); // Peggy | ||
| </code> | </code> | ||
| - | * **join()** fügt ein String-Array zu einem String zusammen. Beginnend bei dem Ersten (Index von 0) werden alle folgenden Zeichenketten im Array angehangen. [[http://www.processing.org/reference/join_.html|siehe Referenz]] | + | * **join()** fügt ein String-Array zu einem String zusammen. Beginnend bei dem Ersten (Index von 0) werden alle folgenden Zeichenketten im Array angehangen. [[http://www.processing.org/reference/join_.html|siehe Referenz]]<code> |
| - | <code> | + | |
| String[] arr = new String[3]; | String[] arr = new String[3]; | ||
| arr[0] = "Ursula"; | arr[0] = "Ursula"; | ||
| Line 97: | Line 94: | ||
| println (names); // Ursula,Uwe Kowalski,Beate | println (names); // Ursula,Uwe Kowalski,Beate | ||
| </code> | </code> | ||
| - | * **substring()** gibt einen Teilabschnitt eines bestehenden Textes zurück. Der Bereich kann durch zwei Formulierungen bestimmt werden: (1) Anfangsposition; Extrakt läuft bis zum Ende des Textes (2) Anfangs- und Endposition; Einschränkung in beiden Richtungen. [[http://www.processing.org/reference/String_substring_.html|siehe Referenz]] | + | * **substring()** gibt einen Teilabschnitt eines bestehenden Textes zurück. Der Bereich kann durch zwei Formulierungen bestimmt werden: (1) Anfangsposition; Extrakt läuft bis zum Ende des Textes (2) Anfangs- und Endposition; Einschränkung in beiden Richtungen. [[http://www.processing.org/reference/String_substring_.html|siehe Referenz]]<code> |
| - | <code> | + | |
| String s = "abc123ABC"; | String s = "abc123ABC"; | ||
| println (s.substring (2)); // c123ABC | println (s.substring (2)); // c123ABC | ||
| println (s.substring (3, 6)); // 123 | println (s.substring (3, 6)); // 123 | ||
| </code> | </code> | ||
| - | * **trim()** entfernt unnötige Leerzeichen am Anfang und Ende einer Zeichnkette. [[http://www.processing.org/reference/trim_.html|siehe Referenz]] | + | * **trim()** entfernt unnötige Leerzeichen am Anfang und Ende einer Zeichnkette. [[http://www.processing.org/reference/trim_.html|siehe Referenz]]<code> |
| - | <code> | + | |
| String s = " My tiny Text "; | String s = " My tiny Text "; | ||
| println ("|" + s + "|"); // | My tiny Text | | println ("|" + s + "|"); // | My tiny Text | | ||