【发布时间】:2011-11-20 03:26:27
【问题描述】:
我有这个代码,但只适用于小写字母。我希望它在忽略大写字母的同时对列表进行排序..
package sortarray.com;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
public class SortArray extends Activity {
ArrayList<String[]> matchedFruits = new ArrayList<String[]>();
TextView selection;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String fruits[] = new String[7];// Sorted array
fruits[0] = "apple";
fruits[1] = "apricot";
fruits[2] = "banana";
fruits[3] = "mango";
fruits[4] = "melon";
fruits[5] = "pineapple";
fruits[6] = "peach";
char currChar = fruits[0].charAt(0);// Get first char of first element
boolean match = false;
int len = fruits.length;
List<String> tmp = new ArrayList<String>();
for (int i = 1; i < len; i++) {
Log.d("Comparing ", fruits[i].charAt(0) + "," + currChar);
if (fruits[i].charAt(0) == currChar) {
if (match == false)// new match?
{
match = true;// Reset search
tmp.clear();// clear existing items
tmp.add(fruits[i - 1]);
Log.d("Started new list ", fruits[i - 1]);
} else {
tmp.add(fruits[i - 1]);
Log.d("Added to list ", fruits[i - 1]);
}
} else {
match = false;
tmp.add(fruits[i - 1]);
matchedFruits.add(tmp.toArray(new String[tmp.size()]));// add to
// final
// list
Log.d("Finished a list ", fruits[i - 1]);
tmp.clear();// clear existing items
}
currChar = fruits[i].charAt(0);
}
tmp.add(fruits[len - 1]);
matchedFruits.add(tmp.toArray(new String[tmp.size()]));// add left over
// items
printList();
}
void printList()
{
//Print the list
TextView selection = (TextView) findViewById(R.id.tv);
String mssg="";
for(int i=0;i<matchedFruits.size();i++)
{
String tmp2[]= matchedFruits.get(i);
for (int j = 0; j < tmp2.length; j++) {
//Log.d("Final list", "Array #" + i + "[" + j + "]," + tmp2[j]);
mssg += tmp2[j].toString();
}
//selection.setText("\n");
selection.setText(mssg);
}
}
}
【问题讨论】:
-
你为什么不使用 sort() 之类的。像数组或集合那样?
-
@jitender:你想做什么,能详细点吗?
-
我想按字典顺序对列表进行排序,同时忽略区分大小写的字母......即,如果我写 man 和 Mango,它们在排序后会一起出现在列表中。
-
我认为 jitender 正在寻找 自然排序 顺序,但我不知道为什么不使用 Collections.sort!
-
@Tobiask...先生,我是初学者,所以对此有一点了解,请指导我如何使用它。
标签: java android collections