多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# AppendList对象 >[info] 核心 1.3.5-BETA 添加 >[success] `AppendList`旨在优化对CQ码和其他值的相互拼接。 为了更好的服务CQ码的拼接操作,在添加此类的同时我也对CQCode类内部进行了优化。具体优化内容可查阅`CQCode`章节。 不同于直接的字符串拼接,AppendList提供了一些对于CQCode更加遍历的操作,且当你拼接进去的字符串符合CQ码规则的时候,他也会自动将字符串转化为CQCode对象。 首先,我先举个栗子: ```java // 获取一个CQCodeUtil对象 CQCodeUtil build = CQCodeUtil.build(); // 构建三个at的CQ码对象 CQCode at1 = build.getCQCode_At("1111111111"); CQCode at2 = build.getCQCode_At("2222222222"); CQCode at3 = build.getCQCode_At("3333333333"); // 使用append方法构建AppendList并拼接CQ码与字符串对象 AppendList atTest = at1.append("艾特测试").append(at2).append(at3); // 转化为字符串, 默认元素间使用空格间隔。 String toString = atTest.toString(); // 打印结果是:[CQ:at,qq=1111111111] 艾特测试 [CQ:at,qq=2222222222] [CQ:at,qq=3333333333] System.out.println(toString); ``` <br> >[success] `AppendList`是一个接口类型,目前所提供的一个实现类是`CQAppendList` **详细API如下:** ```java /** * 拼接一个CharSequence类型对象 * 如果字符串可以转化为CQCode则会进行转化。 * * 一个append中如果包含而不是整个都是的话将不会进行转化。 * * 例如: * * <code> * * append("hello! [CQ:at,qq=123]"); * * append(" [CQ:at,qq=123] "); * * 以上情况不会进行转化。 * * </code> * */ AppendList append(CharSequence append); /** 对象默认转化为字符串 */ default AppendList append(Object o){ return append(String.valueOf(o)); } AppendList append(long append); AppendList append(int append); AppendList append(double append); AppendList append(boolean append); AppendList append(char append); /** 转化为字符串后会前后去空处理 */ AppendList appendTrim(CharSequence append); /** 批量加载,且都去空处理 */ AppendList appendTrim(AppendList append); /** 拼接另一个AppendList */ AppendList append(AppendList list); /** 获取拼接列表中的CQCode对象 */ CQCode[] getCQCodes(); /** 获取某个索引上的值 */ CharSequence get(int index); /** 获取所有的值 */ CharSequence[] getAll(); /** 获取长度 */ int size(); /** 是否包含 */ boolean contains(Object b); /** 是否包含某个CQ码类型 */ boolean containsType(CQCodeTypes types); /** foreach方法 */ void forEach(Consumer<CharSequence> each); /** * 只遍历CQCode的foreach,携带索引参数 */ void forEachCQCode(BiConsumer<CQCode, Integer> each); @Override String toString(); /** 转化为流对象 */ Stream<CharSequence> stream(); /** 转化为仅保留CQCode的流对象 */ Stream<CQCode> streamCQCode(); ```