gpt4 book ai didi

java - 如何按每个字符串的第二个字符对字符串数组进行排序?

转载 作者:行者123 更新时间:2023-11-30 08:40:51 24 4
gpt4 key购买 nike

我编写了一个程序,要求用户将姓名输入数组,然后按字母顺序对姓名进行排序...该程序运行良好,但我想知道是否可以对 2 号、3 号输入的每个姓名进行排序, 或每个字符串中的第 4 个字符?例如,如果用户输入 Bob、Dan 和 Kris,程序应将他们排序为 Dan、Bob、Kris。这是我的程序,它按字符串的第一个字母对我的字符串数组进行排序:

  import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;


public class SortingAnArrayOfStrings {




public static void main(String[] args) {


{
//Ask the user for names to add to the array
List<String> list=new ArrayList<String>();
Scanner in=new Scanner(System.in);
do {
System.out.println(" The names on the list are "+list);
System.out.println("Would you like to add another name to the list? (y/n)");

if (in.next().startsWith("y")) {
System.out.println("Enter:");
list.add(in.next());
}else{break;

}
} while (true);
//display the names that have been added to the array
System.out.println("The names on the list are "+list);

//sort the array of names in alphabetical order
String[] Arr=list.toArray(new String[list.size()]);
String[] stringArray=new String[Arr.length];

for(int i=0;i<Arr.length;i++)
{
for (int j = i+1; j < Arr.length; j++) {
if (Arr[i].trim().compareTo(Arr[j].trim())>0) {
String temp=Arr[j];
Arr[j]=Arr[i];
Arr[i]=temp;
}
}
stringArray[i]=Arr[i];
}

//display the sorted list of names
System.out.println("This is the list of names after sorting them in alphabetical order : ");

for(String ss:stringArray){
System.out.print(ss + " ");

}
}

}
}

最佳答案

您可以使用自定义 java.util.Comparator 尝试类似下面的操作:

String[] names = {"Dan", "Bob", "Kris"};
java.util.Collections.sort(java.util.Arrays.asList(names), new java.util.Comparator<String>() {
@Override
public int compare(String s1, String s2) {
// TODO: Argument validation (nullity, length)
return s1.charAt(1) - s2.charAt(1);//comparision
}
});

for (String name : names) System.out.println(name);

输出:

Dan
Bob
Kris

关于java - 如何按每个字符串的第二个字符对字符串数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35402555/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com