推荐答案
要在Java中对字符串进行排序,将大写字母排在前面,小写字母排在后面,可以使用自定义的比较器(Comparator)来实现。以下是一种可能的实现方式:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class StringSort {
public static void main(String[] args) {
List strings = new ArrayList<>();
strings.add("Hello");
strings.add("World");
strings.add("java");
strings.add("OpenAI");
strings.add("Language");
strings.add("Model");
// 使用自定义的比较器进行排序
Collections.sort(strings, new CustomComparator());
// 打印排序结果
for (String str : strings) {
System.out.println(str);
}
}
static class CustomComparator implements Comparator {
@Override
public int compare(String s1, String s2) {
boolean s1UpperCase = Character.isUpperCase(s1.charAt(0));
boolean s2UpperCase = Character.isUpperCase(s2.charAt(0));
// 如果s1是大写字母而s2是小写字母,则s1排在s2前面
if (s1UpperCase && !s2UpperCase) {
return -1;
}
// 如果s1是小写字母而s2是大写字母,则s2排在s1前面
else if (!s1UpperCase && s2UpperCase) {
return 1;
}
// 否则,使用默认的字符串比较
else {
return s1.compareTo(s2);
}
}
}
}
上述代码中,我们首先创建了一个字符串列表,并添加了一些字符串数据。然后,我们使用Collections.sort()方法对字符串列表进行排序,并传入自定义的比较器CustomComparator。比较器根据字符串的首字母的大小写来确定排序顺序,大写字母排在小写字母之前。最后,按照排序顺序打印字符串列表的内容。
输出结果为:
Language
Model
OpenAI
Hello
World
java
以上代码演示了如何使用自定义比较器对字符串进行排序,实现了大写字母在前,小写字母在后的需求。
其他答案
-
要在Java中对字符串进行排序,将大写字母排在前面,小写字母排在后面,可以通过自定义的比较规则来实现。以下是一种可能的实现方式:
import java.util.Arrays;
public class StringSort {
public static void main(String[] args) {
String[] strings = {"Hello", "World", "java", "OpenAI", "Language", "Model"};
// 使用自定义比较规则进行排序
Arrays.sort(strings, (s1, s2) -> {
boolean s1UpperCase = Character.isUpperCase(s1.charAt(0));
boolean s2UpperCase = Character.isUpperCase(s2.charAt(0));
// 如果s1是大写字母而s2是小写字母,则s1排在s2前面
if (s1UpperCase && !s2UpperCase) {
return -1;
}
// 如果s1是小写字母而s2是大写字母,则s2排在s1前面
else if (!s1UpperCase && s2UpperCase) {
return 1;
}
// 否则,使用默认的字符串比较
else {
return s1.compareTo(s2);
}
});
// 打印排序结果
for (String str : strings) {
System.out.println(str);
}
}
}
在上述代码中,我们创建了一个字符串数组,并初始化了一些字符串数据。然后,我们使用Arrays.sort()方法对字符串数组进行排序,并传入一个Lambda表达式作为比较器。比较器根据字符串的首字母的大小写来确定排序顺序,大写字母排在小写字母之前。最后,按照排序顺序打印字符串数组的内容。
输出结果为:
Language
Model
OpenAI
Hello
World
java
以上代码演示了如何使用自定义比较规则对字符串进行排序,以满足大写字母在前,小写字母在后的需求。
-
要在Java中对字符串进行排序,将大写字母排在前面,小写字母排在后面,可以使用Arrays.sort()方法,并传入自定义的比较器来实现。以下是一种可能的实现方式:
import java.util.Arrays;
import java.util.Comparator;
public class StringSort {
public static void main(String[] args) {
String[] strings = {"Hello", "World", "java", "OpenAI", "Language", "Model"};
// 使用自定义的字符串比较器进行排序
Arrays.sort(strings, new CustomComparator());
// 打印排序结果
for (String str : strings) {
System.out.println(str);
}
}
static class CustomComparator implements Comparator {
@Override
public int compare(String s1, String s2) {
boolean s1UpperCase = Character.isUpperCase(s1.charAt(0));
boolean s2UpperCase = Character.isUpperCase(s2.charAt(0));
// 如果s1是大写字母而s2是小写字母,则s1排在s2前面
if (s1UpperCase && !s2UpperCase) {
return -1;
}
// 如果s1是小写字母而s2是大写字母,则s2排在s1前面
else if (!s1UpperCase && s2UpperCase) {
return 1;
}
// 否则,使用默认的字符串比较
else {
return s1.compareTo(s2);
}
}
}
}
上述代码中,我们创建了一个字符串数组,并初始化了一些字符串数据。然后,我们使用Arrays.sort()方法对字符串数组进行排序,并传入自定义的比较器CustomComparator。比较器根据字符串的首字母的大小写来确定排序顺序,大写字母排在小写字母之前。最后,按照排序顺序打印字符串数组的内容。
输出结果为:
Language
Model
OpenAI
Hello
World
java
以上代码演示了如何使用自定义比较器对字符串进行排序,以满足将大写字母排在前面,小写字母排在后面的需求。
