Java 如何在没有数组的情况下对字符串进行排序而不考虑大小写

Java 如何在没有数组的情况下对字符串进行排序而不考虑大小写,java,string,sorting,Java,String,Sorting,我应该写一个程序,按升序对字符串进行排序,并且应该考虑大小写。这是我的密码: public class CSCD210Lab5 { public static void main(String [] args) { String str1, str2, str3, smallestStr, middleStr, largestStr; Scanner kb = new Scanner(System.in); System.out.print("

我应该写一个程序,按升序对字符串进行排序,并且应该考虑大小写。这是我的密码:

public class CSCD210Lab5
{
   public static void main(String [] args)
   {
      String str1, str2, str3, smallestStr, middleStr, largestStr;

      Scanner kb = new Scanner(System.in);

      System.out.print("Enter your first string: ");
      str1=kb.next();
      System.out.print("Enter your second string: ");
      str2=kb.next();
      System.out.print("Enter your third string: ");
      str3=kb.next();

      smallestStr = str1;
      if (str2.charAt(0) < smallestStr.charAt(0))
         smallestStr = str2;
      if (str3.charAt(0) < smallestStr.charAt(0))
         smallestStr = str3;

      middleStr = str1;
      if ((str1.charAt(0) <= str2.charAt(0) && str2.charAt(0) <= str3.charAt(0)) ||     (str3.charAt(0) <= str2.charAt(0) && str2.charAt(0) <= str1.charAt(0)))
         middleStr = str2;
      if ((str2.charAt(0) <= str3.charAt(0) && str3.charAt(0) <= str1.charAt(0)) || (str1.charAt(0) <= str3.charAt(0) && str3.charAt(0) <= str2.charAt(0)))
         middleStr = str3;

      largestStr = str1;
      if (str2.charAt(0) > largestStr.charAt(0))
         largestStr = str2;
      if (str3.charAt(0) > largestStr.charAt(0))
         largestStr = str3;
      System.out.print("The Strings in Ascending Order Are: " + smallestStr + ", " + middleStr + ", " + largestStr);
    }
}
公共类CSCD210Lab5
{
公共静态void main(字符串[]args)
{
字符串str1、str2、str3、最小STR、中间STR、最大STR;
扫描仪kb=新扫描仪(System.in);
System.out.print(“输入第一个字符串:”);
str1=kb.next();
System.out.print(“输入第二个字符串:”);
str2=kb.next();
System.out.print(“输入第三个字符串:”);
str3=kb.next();
smallestStr=str1;
if(str2.charAt(0)

公共类StrignoreComparator实现Comparator{
公共整数比较(字符串val1,字符串val2){
返回val1.toLowerCase().compareTo(va2.toLowerCase());
}

}

实现一个
比较器
,该比较器使用
toLowerCase()
进行比较:

public class SortIgnoreCase implements Comparator<String> {
    @Override
    public int compare(String s1, String s2) {
        return s1.toLowerCase().compareTo(s2.toLowerCase());
    }
}

// ...
List<String> strings = new ArrayList<>();
strings.add(str1);
strings.add(str2);
strings.add(str3);
Collections.sort(strings, new SortIgnoreCase());
公共类SortIgnoreCase实现了Comparator{
@凌驾
公共整数比较(字符串s1、字符串s2){
返回s1.toLowerCase().compareTo(s2.toLowerCase());
}
}
// ...
列表字符串=新的ArrayList();
strings.add(str1);
strings.add(str2);
strings.add(str3);
sort(strings,new SortIgnoreCase());

将字符串
转换为小写()
然后比较。如果您不希望tp使用任何数组,您可以使用
树集
&用于大写或小写@JNL,因为我无法使用数组。因此,只需使用
比较
方法此解决方案依赖于语言。有关独立于语言的解决方案,请参阅和。有关说明,请参阅