我有此代码,但仅适用于小写字母。我希望它在不考虑大写字母的情况下对列表进行排序。
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);
}
}
}
这是最佳方法的简单Java示例:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class Sorter {
String fruits[] = new String[7];
List<String> lst;
Sorter() {
lst = new ArrayList<String>();
// initialise UNSORTED array
fruits[0] = "Melon"; fruits[1] = "apricot"; fruits[2] = "peach";
fruits[3] = "mango"; fruits[4] = "Apple"; fruits[5] = "pineapple";
fruits[6] = "banana";
}
public static void main(String[] args) {
Sorter srt = new Sorter();
srt.anyOldUnstaticMethod();
}
public void anyOldUnstaticMethod() {
Collections.addAll(lst, fruits);
System.out.println("Initial List");
for (String s : lst)
System.out.println(s);
Collections.sort(lst);
System.out.println("\nSorted List");
for (String s : lst)
System.out.println(s);
Collections.sort(lst, new SortIgnoreCase());
System.out.println("\nSorted Ignoring Case List");
for (String s : lst)
System.out.println(s);
}
public class SortIgnoreCase implements Comparator<Object> {
public int compare(Object o1, Object o2) {
String s1 = (String) o1;
String s2 = (String) o2;
return s1.toLowerCase().compareTo(s2.toLowerCase());
}
}
}
问题内容: 我有一个包含人名的字符串arraylist 。我想按字母顺序对arraylist进行排序。 我试图以上述方式对列表进行排序。但是它将排序后的数组显示为: 但我不想使其区分大小写。我想要的结果是: 问题答案: 自定义应该有帮助 或者,如果你使用的是Java 8:
问题内容: 这个问题已经在这里有了答案 : 如何使用SQL Order By语句对不区分大小写的结果进行排序? (3个答案) 4年前关闭。 我要做的就是按字母顺序抓取东西,而忽略大写字母。 这是我在上面使用的代码,但是它总是给我一个SQLite异常,表明COLLATE是语法错误。 android.database.sqlite.SQLiteException:在“ COLLATE”附近:语法错误:
本文向大家介绍Java实现按照大小写字母顺序排序的方法,包括了Java实现按照大小写字母顺序排序的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java实现按照大小写字母顺序排序的方法。分享给大家供大家参考,具体如下: 这里排序需要得到的结果按字母顺序。如:a-----z... 运行结果: 更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Ja
我有一个函数,它将.properties文件中的值存储到树映射(translatedMap)中,然后从“keymap”中检索新值并将它们也存储到“translatedMap”中。问题是,无论我做什么,似乎总是把大写键和非大写键分开。下面是我的代码: 我得到的输出是这样的: 当我想让它出来的时候: alowercase.key=value3 alother lowercase.key=value4
我已经用其他语言编写了相当多的程序,但是我对PowerShell还相当陌生。我知道比较运算符的大小写敏感版本,但我对一些结果感到紧张.. 我假设PowerShell在进行字符串比较时使用了ASCII(Unicode)值,所以我预计 结果是错误的——但事实并非如此 这就有了一些直观的感觉(lower一定要小于upper-right?)但是从ASCII的角度来看没有意义。对于罗马字母字符来说,这种情况
我使用的是mySQL和排序规则。 我尝试了以下查询: 结果是: 是否在上面的排序规则中设置了这种排序类型(小写字母按降序排列)? 另外,如果我运行以下查询: 结果是: 再次以升序排列,小字母排在第一位。我不明白。请给我解释一下。 如何更改数据库排序规则?