一般我们拼接字符串的时候会是以下的这种方式:


String[] strs = {"a","b","c"};
StringBuilder b = new StringBuilder();
for (int i = 0; i < strs.length; i++) {b.append(strs[i]);b.append(", ");
}
b.delete(b.length()-2, b.length());// 删掉最后一个","

优雅方式:


public static String toString(Object[] a) {if (a == null)return "null";// 为什么减1呢,看后边循环(将imax看出索引)int iMax = a.length - 1;if (iMax == -1) // 空字符串的话,索引认为是-1return "";StringBuilder b = new StringBuilder();for (int i = 0; ; i++) {b.append(String.valueOf(a[i]));// 当为最大长度时,表示已经拼接完成,不再链接“,”if (i == iMax)return b.toString();b.append(", ");}
}

1)如果数组为 null,那就返回“”字符串,考虑很周全,省去了 NullPointerException 的麻烦。

2)如果数组长度为 0,那就返回“”字符串。注意,此处没有使用 a.length == 0 进行判空,而是用了 a.length - 1 == -1,又为之后的 for 循环中的 i == iMax 埋下了伏笔,资源一点也没有浪费。

3)for 循环中字符串的拼接更是巧妙,for 循环的条件中没有判断 i < a.length,而在循环体内使用了 i == iMax

拼接字符串的优雅方式相关推荐

  1. Go语言如何高效的进行字符串拼接(6种方式进行对比分析)

    前言 哈喽,大家好,我是asong 日常业务开发中离不开字符串的拼接操作,不同语言的字符串实现方式都不同,在Go语言中就提供了6种方式进行字符串拼接,那这几种拼接方式该如何选择呢?使用那个更高效呢?本 ...

  2. 【String拼接】Go语言字符串如何高效的进行拼接(6种方式进行对比分析)

    string类型 我们首先来了解一下Go语言中string类型的结构定义,先来看一下官方定义: // string is the set of all strings of 8-bit bytes, ...

  3. 【Flutter】Dart 数据类型 字符串类型 ( 字符串定义 | 字符串拼接 | 字符串 API 调用 )

    文章目录 I . 字符串定义 I . 字符串拼接 III . 字符串 API 调用 IV . 字符串 Demo 示例 I . 字符串定义 使用单引号 ' ' 和 双引号 " " 都 ...

  4. python循环拼接字符串_Python字符串拼接

    问题描述 在解析文件的时候,需要将解析出来的数据字符串拼接成新的字符串.正常来说这个,过程是一个循环,不断拼接字符串.如果这个过程循环的次数不多的话,不同的方式拼接方式差别不大.如果循环次数超过100 ...

  5. 最优雅的Java字符串拼接是哪种方式?

    title shortTitle category tag description head 最优雅的Java字符串拼接是哪种方式? Java字符串拼接 Java核心 数组&字符串 Java程 ...

  6. Python拼接字符串的七种方式

    ♚ 豌豆花下猫,某985高校毕业生, 兼具极客思维与人文情怀 .公众号Python猫, 专注python技术.数据科学和深度学习,力图创造一个有趣又有用的学习分享平台. 忘了在哪看到一位编程大牛调侃, ...

  7. 【C 语言】文件操作 ( 配置文件读写 | 写出或更新配置文件 | 逐行遍历文件文本数据 | 获取文件中的文本行 | 查询文本行数据 | 追加文件数据 | 使用占位符方式拼接字符串 )

    文章目录 一.逐行遍历文件文本数据 1.获取文件中的文本行 2.查询文本行数据 3.追加文件数据 4.使用占位符方式拼接字符串 二.完整代码示例 一.逐行遍历文件文本数据 1.获取文件中的文本行 调用 ...

  8. es6拼接字符串的方式。

    文章:es6拼接字符串的方式. 转载于:https://www.cnblogs.com/Tpf386/p/9519007.html

  9. JavaScript中字符串连接/拼接的四种方式

    JavaScript中连接字符串的方式有4种,分别是使用加号运算符连接.使用${}配合反引号连接.使用concat()函数连接.使用join()函数连接. 1. 使用加号运算符 示例代码如下: let ...

最新文章

  1. linux下的arm仿真,使用QEMU仿真ARM Linux系统
  2. maven 整合支付宝,导入alipay-sdk-java包到本地仓库,远程仓库
  3. 4. Median of Two Sorted Arrays
  4. c#以文件流的形式输出xml(可以解决内存溢出)-XmlTextWriter
  5. MYSQL数据库导入出错:#1046 - No database selected
  6. vi/vim 三种模式及命令 (简单粗暴,轻松搞懂)
  7. 第一次使用mysql_第一次使用mysql,求帮忙
  8. 2021年中国养老前景调查报告
  9. Team Foundation Server 2010 安装、部署与配置(四):设置 .
  10. MySQL Hex函数使用详解
  11. 问题二十四:怎么模拟ray tracing图形中介质材料的颜色(dielectric)
  12. GetUserName()第二个参数中指明缓冲区长度
  13. Docker数据持久化与容器迁移
  14. 使用Duilib做的程序封装成DLL的显示加载与卸载问题
  15. 模糊数学与matlab
  16. JLink驱动设备管理器中显示黄色感叹号
  17. CSS YUI reset
  18. 组策略本地计算机策略导出,关于win10系统本地组策略备份和设置的详细步骤
  19. 093 一个人的固执里,藏着低水平的认知
  20. php blowfish 解密,php blowfish加密解密算法

热门文章

  1. 互为质数的勾股数c语言,c语言 寻求勾股数满足x2+y2=z2的正整数x,y和z称为一组勾股数(pythagorean...
  2. 任务管理器显示不全 - 确定谁占用了我们的端口
  3. java nio socket长连接_netty学习实战—实现websocket长连接和socket之间进程通信
  4. github 修改项目为public_在GitHub上为开源项目做贡献
  5. html修改span中的内容,在HTML中抓取span的内容
  6. python工程师认证证书_python工程师-day83
  7. python画爱心原理_程序员式优雅表白,教你用python代码画爱心
  8. Win10上rabbitmq 安装
  9. 【eclipse】配置author和commiter,git配置user.name和user.email
  10. UDP客户端向服务器发送文件,基于UDP协议的客户端与服务器端的文件传送