Java 按字母顺序中打印两个字符串的公共字符


要按字母顺序打印两个字符串的公共字符,代码如下-

示例

import java.io.*;
import java.util.*;
public class Demo{
   static void common_chars(String str_1, String str_2){
      int[] array_1 = new int[26];
      int[] array_2 = new int[26];
      int str_len_1 = str_1.length();
      int str_len_2 = str_2.length();
      for (int i = 0 ; i < str_len_1 ; i++)
      array_1[str_1.charAt(i) - 'a'] += 1;
      for (int i = 0 ; i < str_len_2 ; i++)
      array_2[str_2.charAt(i) - 'a'] += 1;
      for (int i = 0 ; i < 26 ; i++){
         if (array_1[i] != 0 && array_2[i] != 0){
            for (int j = 0 ; j < Math.min(array_1[i], array_2[i]) ; j++)
            System.out.print(((char)(i + 'a')));
         }
      }
   }
   public static void main(String[] args) throws IOException{
      String my_str_1 = "itsasample";
      String my_str_2 = "thisisasample";
      System.out.println("两个字符串之间的公共字符按字母顺序排列为 :
   ");
      common_chars(my_str_1, my_str_2);
   }
}

输出结果

两个字符串之间的公共字符按字母顺序排列为 :
aaeilmpsst

名为Demo的类包含一个名为'common_chars'的函数,该函数声明两个大小为26的整数数组(表示26个英文字母)。它们的长度分别存储在两个不同的变量中。

数组在'a'的ascii与每个字符的ascii之间的索引处进行迭代,并从每个字符的ascii值中减去字符'a'的ascii并加1。这将仅填充这些值 常见的数组。 计算两个数组中的最少字符数,并将其打印在控制台上。 在main函数中,定义了两个字符串,并通过将这两个字符串作为参数传递来调用函数。