0

我有一个名为 dbData 的列表和两个名为 infoSB 和 historySB 的 StringBuilder。我已经调试了我的项目,两个 StringBuilders 拥有它们应该拥有的所有数据,但由于某种原因,它还向数据中添加了一些随机字符。我为添加数据所做的只是下面的代码:

dbData.add(infoSB.toString());
dbData.add(historySB.toString());

添加的字符是 [ ] 和 ,

有没有人遇到过这种情况并知道如何防止它这样做?

更新:这是我获取数据并将其分配给 StringBuilder 的方式。

JSONObject json_data = jArray.getJSONObject(i);
double altitudeData = json_data.getDouble("altitude");
double altitudeInFeet = altitudeData * 3.281;
historySB.append("Altitude: " + df.format(altitudeInFeet) + "ft\n");
4

2 回答 2

1

这些字符是在字符串的开头和结尾吗,中间的某个地方是逗号吗?这就是toString方法的List目的。

如果你有一个包含三个元素的列表

  1. “车”
  2. “面包车”
  3. “自行车”

然后列表将创建以下字符串[car, van, bike]。表示列表的[]开头和结尾,逗号表示元素之间的边界。

如果您只想连接字符串,请使用+运算符或StringBuilder/ StringBuffer

例如。

String data = infoSB + historySB;
于 2012-09-23T20:46:46.090 回答
0

-首先检查你的data source,它们是否带有你收到的一些奇怪的字符。

-我希望那些StringBuilder持有的不是JSON,我怀疑它是因为你得到[],你的 StringBuilders ,所以如果你需要先解析它们,然后需要检索你想要的特定数据......

-trim()您可以使用方法避免任何悬空的空白

例如:

dbData.add(infoSB.toString().trim());
dbData.add(historySB.toString().trim());

/////////////////编辑部分////////////////

DecimalFormat df = new DecimalFormat("##.###");
String altitudeData = json_data.getString("altitude");
double altitudeInFeet = Double.parseDouble(altitudeData) * 3.281;
historySB.append("Altitude: " + df.format(altitudeInFeet) + "ft\n");
于 2012-09-23T19:58:02.447 回答