2016-11-24 58 views
0

我有一个查询字符串像如何在java中创建3维数组?

"1_timestamp=201612312&1_user=123&2_timestamp=20145333&2_user=5432"; 

但我想让他们阵中像下面。

array(
    0 => (
     timestamp = 201612312, 
     user = 123, 
     ), 
    1 => (
     timestamp = 201612312, 
     user = 123, 
     ), 
); 

我很抱歉向您展示php类型的数组,虽然我是新来的java。

我该如何做到这一点?

谢谢

+2

Map'的'思考。 –

+2

编写类并创建对象以表示您的数据,而不是创建多维数组。 –

+0

你想*解析字符串'1_timestamp = 201612312&1_user = 123&2_timestamp = 20145333&2_user = 5432'吗? –

回答

2

这是最接近结构和你在PHP在做什么,如果你的数据有更多的领域可以很容易地添加到数据类:

import java.util.ArrayList; 
import java.util.List; 

class Data { 
    int timestamp; 
    int user; 

    Data(int ts, int user) { 
     this.timestamp = ts; 
     this.user = user; 
    } 
} 

public class Test { 

    public static void main(String[] args) { 
     List<Data> data = new ArrayList<Data>(); 
     Data d1 = new Data(201612312, 123); 
     Data d2 = new Data(201612312, 123); 
     data.add(d1); 
     data.add(d2); 

     System.out.println(data.get(1).user); 
    } 
} 
+0

谢谢!!虽然这不是我所期待的完美之一,但这帮助我了解了如何解决问题。 –

1

你可以不用写一个类。你可以像这样使用它。

Map<String, String> map1 = new HashMap<String, String>(); 
map1.put("1_timestamp", "201612312"); 
map1.put("1_user", "123"); 

Map<String, String> map2 = new HashMap<String, String>(); 
map2.put("2_timestamp", "20145333"); 
map2.put("2_user", "5432"); 

List<Map<String,String> mapList = new ArrayList<Map<String, String>>(); 
mapList.add(map1); 
mapList.add(map2); 

for (Map<String, String> map : list) { 
    for (Map.Entry<String, String> entry : map.entrySet()) { 
     System.out.println(entry.getKey() + " - " + entry.getValue()); 
    } 
} 
+0

不好,他不会得到'timestamp'和'user'的标签 – Aroniaina