java - JAVA连接双数组=>字符串(特殊格式)
问题描述
如何格式化字符串以将双精度数组转换为形式:[0.0, 2.4, 5.5, 6.3]
?
我将双数组元素分配给一个字符串以具有上述格式的字符串表示形式。
我将双数组更改为单个字符串表示的代码:
public String toString() {
String toString="[";
for(int i=0; i<data.length; i++) {
toString = toString + data[i] + ", ";
}
return toString + "]";
}
我得到格式为 [0.0, 2.4, 5.5, 6.3, ] 的数组,这不是预期的,也是错误的。
如何将其格式化为 [0.0, 2.4, 5.5, 6.3]?
我尝试过使用Arrays.toString()
方法,但是我不允许在这个项目中使用它。
我应该如何更改我的代码以获得所需的格式?
解决方案
您可以流式传输data
阵列并让Collectors.joining
繁重的工作:
@Override
public String toString() {
return Arrays.stream(data)
.mapToObj(Double::toString).collect(Collectors.joining(", ", "[", "]"));
}
编辑:
如果你不能流式传输数组,你可以自己迭代它并对第一个元素进行特殊处理,这是唯一一个前面没有逗号的元素:
@Override
public String toString() {
StringBuilder sb = new StringBuilder("[");
if (data.length > 0) {
sb.append(data[0]);
}
for (int i = 1; i < data.length; ++i) {
sb.append(", ").append(data[i]);
}
sb.append("]");
return sb.toString();
}
推荐阅读
- sql-server - SSMS 是否有按“Enter”的快捷方式
- javascript - 通过点表示法获取自定义变量
- php - 当上一部分被隐藏时,包含文件不起作用
- google-schemas - GmailL JSON-LD 标记和谷歌注册
- minitab - 对于具有三个因子的两水平因子设计,我能否仅在 minitab 中使用 botched 运行?
- java - 为什么泛型类型不能在静态方法中声明为返回类型?
- javascript - 如何使用地图内部的过滤方法
- amazon-web-services - 为什么我在未指定 VersionStage: AWSCURRENT 时使用 Secrets Manager API 收到 Go AWS Lambda 函数的访问被拒绝消息?
- python - Pandas:如何用其他列上每一行的列表值拆分句子行?
- python-3.x - python中的逆局部线性嵌入LLE