Освой Processing играючи
/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000
Строка указывается в двойных кавычках. У строк есть много функций. Если вы знакомы с другими языками программирования, то они вам знакомы. Только малая часть из них:
String cat = "Котяра";
void setup() {}
void draw() {
println(cat.length());
println(cat.charAt(1));
println(cat.substring(0, 3));
println(cat.toUpperCase());
}
В первой строке вычисляется длина строки, во второй - символ в указанной позиции, в третьей - подстрока, в четвёртой - вывод в верхнем регистре.
Для соединения массива строк в одну строку используется функция join().
Для разбивки строки на массив строк используется функция split().
Функция trim() удаляет пробелы в начале и конце строки.
Подготовим текстовый файл с несколькими строками текста. Файл следует сохранить в папке data вашего скетча.
String[] textLines;
void setup()
{
size(640, 200);
textLines = loadStrings("cat.txt");
noLoop();
}
void draw()
{
background(255);
for (int i = 0; i < textLines.length; i++) {
println(i + ". " + textLines[i]);
}
}
Функция loadStrings() загружает файл и возвращает массив переменных типа String. Мы можем получить доступ к каждой строке по отдельности. Текст выводится в консоли с нумерацией строк.
Если нужно работать с файлами CSV, в которых данные разделены запятыми, то можно задействовать дополнительные функции.
String[] textLines;
void setup()
{
size( 640, 200 );
textLines = loadStrings("cat.csv");
noLoop();
}
void draw()
{
background(255);
for (int i = 0; i < textLines.length; i++) {
String[] currentLine = split(textLines[i], ",");
for (int j = 0; j < currentLine.length; j++){
println(currentLine[j]);
}
}
}
Разница заключается в применении функции split(). Первый параметр использует строку, содержащую данные, разделённых запятой. Второй параметр указывает на символ, который служит разделителем.
XML xml;
void setup()
{
xml = loadXML("some.xml");
noLoop();
}
void draw()
{
XML[] kids = xml.getChildren("element");
for (int i = 0; i < kids.length; i++) {
int id = kids[i].getInt("id");
String url = kids[i].getString("url");
String txt = kids[i].getContent();
println(i + ": " + id + " " + url + " " + txt);
}
}
XML-файл имеет определённую структуру. Различные методы позволяет извлечь нужные данные. Метод getChildren() возвращает дочерние узлы в виде массива.
Узел может иметь атрибуты. Если это целое число, то вызываем getInt(), если строка - getString().
Метод getContent() позволяет получить данные между тегами.
На главную страницу Processing