870920 Menu

与String类关系密切的类群

本节介绍JUCE类库中一批与String类关系密切的相关类。

CharacterFunctions 该类封装了一大批用于处理字符和字符串的静态函数,比如:大小写转换,检测是否字母、数字、空格,复制和比较C风格字串等等

URL 与网址有关的操作处理。大部分成员函数的参数或返回值为字符串对象。除此之外,该类还可获取某个网页的具体内容,返回值为输入流、二进制数据、文本数据、XML数据等等

newLine NewLine类中预定义的全局对象,相当于换行符’n’。注意是小写n开头。示例:

StringArray 字符串数组。StringArray的元素为String对象
可使用该类的add (“字符串”)方法给数组添加新的字符串。JUCE中有一些类自带toString()方法,可将这些类的对象所保存的某些信息转为标准的字符串。这个方法在给字符串数组添加元素时很有用。该类的joinIntoString(“间隔符”)方法则将该数组中的所有字符串连接成一个字符串,原来的每个字符串元素之间添加给出的间隔符。即:字符串数组中的每个字符串之间中添加参数字符串。示例:

StringArray类的成员函数:(略)

StringPairArray 字符串键值对数组(数据容器)
该容器的每个元素由两个字符串构成:一是键,二是键所对应的值。键值对数组中,键具有唯一性,即:数组中不会出现相同的键。可基于给定的键获取该键所对应的值(返回值为String字符串对象),也可以获取数组中的所有键和所有值(返回值为StringArray字符串数组对象)。向StringPairArray中添加元素(字符串键值对)的函数为:set(键, 值)。要同时获取数组中的所有键值对信息,可使用getDescription()函数,该函数的返回值为一个长字符串,内容为本数组的全部内容,其格式为:
键1的文本 = 所对应的值的文本, // 注意,实际返回的字符串中,并没有换行符
键2的文本 = 所对应的值的文本,
键3的文本 = 所对应的值的文本…

AttributedString 属性化字符串
AttributedString为带有颜色、字体、行间距、对齐方式、阅读方向、卷字类型等属性的文本字符串, 该类的使用不同于常规的字符串,通常是先定义一个空白对象,而后用append()函数添加const字符串常量或字符串字面值,添加时可设置字体、颜色等属性,而后设置其对齐方式,最后调用draw()函数将其绘制出来。比如,在组件类的paint()函数中:

如果属性化字符串的文本内容无需运行时改变,则可在内容组件类的构造函数中一次性设置其文本内容和字体样式、颜色等等,而后在paint()函数中进行绘制。如果文本较多,则可以声明多个属性化字符串对象。

AttributedString类的常用方法:(略)

 SystemClipboard 系统剪贴板
SystemClipboard可将一个字符串保存到系统剪贴板中,或者从剪贴板中获取字符串信息。本类是程序实现复制、剪切、粘贴等操作的核心类。该类只有两个静态函数,使用非常简单。

小技巧

千万不要小看SystemClipboard类,虽然它的使用很简单,但稍微变换一下思路,可轻松方便地完成“巨无霸”式的功能性编码。比如:程序要实现复制、粘贴一或多个结构和数据极端复杂的GUI对象,内部数据模型或其他什么玩意,用常规办法,编码和调试简直就是噩梦。但是,用SystemClipboard类,轻松到仅需寥寥几行代码。核心的关键是:JUCE类库的一大批类(比如ValueTree、XML等数据模型,Component各类组件和控件等等)可以将自身属性与有关数据转换为一个大String,并且通过转换后的String再次构建本类对象……