我想重新排序一个字符串数组

时间:2017-12-05 18:21:31

标签: java android arrays string listview

我有一个String [“a”,“b”,“c”,“d”]数组。我的任务是按顺序将它们添加到listView:

  1. row ==> d
  2. row ==> c d
  3. row ==> b c d
  4. row ==> a b c d
  5. 现在我已经创建了一个空字符串,并通过for循环我添加了一个项目数组+但问题是如果我使用这个方法,ListView将如下所示:

    1. row ==> d
    2. row ==> d c
    3. row ==> d c b
    4. row ==> d c b a
    5. 这就是我所做的: ...

      String arrNaslovi[] = reverse.split(" ");
      String deli = "";
      
      for(int i=arrNaslovi.length-1; i>=0; i--) {
          deli += arrNaslovi[i] + " ";
          arrayNaslovi.add(deli);
      }
      
      ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, arrayNaslovi);
          ListView listView = findViewById(R.id.listView);
          listView.setAdapter(adapter);
      

4 个答案:

答案 0 :(得分:0)

您只需更改字符串创建的顺序:

deli = reverse[i] + " " +  deli;

答案 1 :(得分:0)

创建阵列后即可使用   Collections.reverse(arrayNaslovi);

答案 2 :(得分:0)

使用SortedSet - TreeSet是一种实现 - 而不是数组。

答案 3 :(得分:0)

使用这样的简单方法。

public List<String> myList() {
    String[] a = {"a", "b", "c", "d"};
    //reverse the array
    String[] b = reverse(a).split("");
    String out = "";
    List<String> list1 = new ArrayList<>();
    for (String aB : b) {
        out += aB;
        //reverse it back
        list1.add(reverse(out.split("")));
    }
    return list1;
}

String reverse(String[] string) {
    String out = "";
    for (int i = string.length - 1; i >= 0; i--) {
        if (!string[i].isEmpty())
            out += string[i];
    }
    return out;
}