Java 按大小写排序

Java 按大小写排序

假设您有一个包含大写和小写字符的字符串。我们必须按照特定的案例顺序对给定的字符串进行排序,这意味着如果给定字符串中的第i个位置有一个大写字母,那么新排序的字符串在该位置必须有大写字母,小写字母也是一样。同时,大写字母和小写字母将分别按排序顺序排列。

在本文中,我们将尝试找到给定问题的解决方案。首先,让我们通过一个示例来更好地理解给定的问题。

示例

String st = "KadbHFGtvc";

假设我们手头有上述字符串。那么,排序后的字符串将是 −

Sorted string: “FabcGHKdtv”

您可以看到原始字符串中的第一个位置有一个大写字母,新排序的字符串的第一个字母也是大写字母。第2到第4个字母是小写字母,所以新字符串也有小写字母,但以排序的方式排列。其他位置的字母也是如此。可以看到大写字母和小写字母都是分开排序的。

特定大小写排序程序

让我们讨论一下解决这个问题的方法。

步骤

  • 第1步 - 创建一个名为’Case’的类,在其中定义一个名为’sortCase()’的无返回类型的方法,以及一个类型为string的参数’st’。

  • 第2步 - 在sortCase()方法中,将给定的字符串转换为字符数组,并将其存储在’chs []’中。然后,我们将使用内置方法’Arrays.sort()’对此数组进行排序。此时,在新排序的数组中,以大写字母’A’到’Z’开头的大写字符首先出现,然后是小写字符’a’到’z’。

  • 第3步 - 接下来,声明并初始化两个整数变量’caseUp’和’caseLW’,它们的初始值为-1,分别用于存储大写和小写字母。

  • 第4步 - 继续创建一个if块,检查数组’chs []’中的第一个元素是否为大写字母。如果是,则将变量’caseUp’设置为0。

  • 第5步 - 创建一个while循环,它将在数组’chs []’的大小之间运行。在这个循环中,我们创建另一个if块,以获取小写字母并将其存储在’caseLw’中。

  • 第6步 - 我们知道在Java中字符串是不可变的,因此我们需要创建一个StringBuffer类的对象’new_st’来存储新更新的字符串。

  • 第7步 - 现在创建一个for循环,它将在给定字符串’st’的大小之间运行。在这个循环中,我们将定义一个if-else块,以将字符串’st’的大写和小写字符的位置与数组’chs []’进行比较。使用if块,我们将从数组’chs []’中获取小写字符并附加到’new_st’。在else块中,我们将获取大写字符并将它们附加到’new_st’。

  • 第8步 - 在主方法中,创建一个’Case’类的对象’obj’来调用方法’sortCase’。

示例

import java.util.*;
public class Case {
   public void sortCase(String st) {
      // converting string into character array
      char chs[] = st.toCharArray(); 
      Arrays.sort(chs); 
      // sorting the character array
      int caseUp = -1;
      int caseLw = -1;
      if(chs[0] <= 'Z') {
         caseUp = 0;
      }
      int i = 0;
      while( i < chs.length) {
         if(chs[i] >= 'Z') {
            caseLw = i;
            break;
         }
         i++;
      }
      StringBuffer new_st = new StringBuffer();
      for(int j = 0; j < st.length(); j++) {
         if(st.charAt(j) >= 'Z') {
            new_st.append(chs[caseLw]);
            caseLw += 1;
         } else {
            new_st.append(chs[caseUp]);
            caseUp += 1;
         }
      }
      System.out.print("The new String after sorting: " + new_st.toString());
   }
   public static void main(String[] args) {
      String st = "KadbHFGtvc";
      System.out.println("The given String: " + st);
      Case obj = new Case(); 
      // Object creation
      obj.sortCase(st); 
      // calling the method using object with an argument
   }
}

输出

The given String: KadbHFGtvc
The new String after sorting: FabcGHKdtv

结论

在本文中,我们讨论了一个解决给定问题的Java程序。我们使用了Java的String、字符数组和StringBuffer类的概念。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程