我开发了一个在线预订Android应用程序。我有一个小问题来从我从数据库获得的响应中获取数据。我的Json对象响应就像这个例子: “星期六”:“1300-1320:1,1325-1345:5,1350-1410:9,1415-1435:1 ......,
在上面的1300-1320中是时间段,实际上是13:00到13:20,1是可用票数。我需要列表视图中的项目如下:
13:00至13:20
13:25至13:45
13:50至14:10
和...你可以得到这个想法。问题是我不知道如何实现这一点。
你能帮我吗?我将不胜感激任何帮助。谢谢!
答案 0 :(得分:0)
以下是一个快速示例ti的外观:
private void parseString() {
String data = "1300-1320:1,1325-1345:5,1350-1410:9,1415-1435:1";
String[] commaStrings = data.split(",");
for (String commaString : commaStrings) {
String[] hours = commaString.split(":");
String[] times = hours[0].split("-");
String t1 = padded(times[0], 2, ":");
String t2 = padded(times[1], 2, ":");
String hour = t1 + " to " + t2;
System.out.println("Hour: " + hour + " available: " + hours[1]);
}
}
private String padded(String original, int charLimit, String separator) {
StringBuilder formatted = new StringBuilder();
for (int i = 0; i < original.length(); i++) {
if (i % charLimit == 0 && i > 0) {
formatted.append(separator);
}
formatted.append(original.substring(i, i + 1));
}
return formatted.toString();
}
结果:
Hour: 13:00 to 13:20 available: 1
Hour: 13:25 to 13:45 available: 5
Hour: 13:50 to 14:10 available: 9
Hour: 14:15 to 14:35 available: 1
希望它有所帮助!!!
答案 1 :(得分:0)
如果您确定答案的格式是一致的,可以通过拆分来解决问题。
以下是:):
String response = //your response ;
String[] items = response.split(",");
for(String item : items){
String available_tickets = item.split(":")[1];
String time_interval = item.split(":")[0];
String from = time_interval.split("-")[0];
String to = time_interval.split("-")[1];
from = new StringBuilder(from).insert(from.length()-2, ":").toString();
to = new StringBuilder(to).insert(to.length()-2, ":").toString();
System.out.println(from + " to " + to + "\n");
System.out.println("The available" + (available_tickets.equals("1") ? "
ticket is " : " tickets are ") + available_tickets);
}