Java数组列表循环并返回选择元素对的String []

时间:2011-02-10 23:24:45

标签: java arrays arraylist

我需要编写一个循环遍历ArrayList<String> pathClientStatic的方法,然后将某些元素复制到String[]

pathClientStatic是一个ArrayList,包含一个时间戳x y

的字符串

每个都用空格“”分隔,虽然元组的数量随着路径的长度而变化,但总会有一个元组。所以可能有时间戳x y时间戳x y时间戳x y或简单时间戳x y。

如果ArrayList中有多对元组,即时间戳xy时间戳xy我想要的是复制数组中最后一对元组的xyxy,所以最后一个xy和倒数第二个xy,out和String[]。目前我有以下代码;

    public static String[] returnLastFour()
    {
    String data = "";
    int pathSize = pathClientStatic.size();
    if (pathSize > 6)
    {
        data += pathClientStatic.get(pathClientStatic.size()-5) + " ";
        data += pathClientStatic.get(pathClientStatic.size()-4) + " ";
        data += pathClientStatic.get(pathClientStatic.size()-2) + " ";
        data += pathClientStatic.get(pathClientStatic.size()-1);
    }
    else 
    {
        data += "nothing";
    }
    data.trim();
    String[] lastFour = data.split(" ");
    return lastFour;
    }

虽然由于某种原因它并不总是拉出最后两个x对。例如,当ArrayList包含;

15:29:20.841 137.0 137.0 15:29:20.841 137.0 137.0 15:29:20.841 28.0 45.0

我想要String[]结束的是;

137.0 137.0 28.0 45.0

但相反,我得到了;

137.0 137.0 137.0 45.0

我想这只是一个明显的错误,但是我一直在盯着/玩这段代码我现在只看到一片阴霾。

帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

代码对我来说是正确的。你绝对肯定你的投入吗?

PS - 最好使用StringBuilder而不是data += ...

修改

现在我很肯定:如果您在列出的输入上运行此程序,您将获得137.0 137.0 28.0 45.0。检查填充原始数组的代码。