두 문자열의 공통 문자를 알파벳순으로 인쇄하려면 코드는 다음과 같습니다. -
예시
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("The common characters between the two strings in alphabetical order is : "); common_chars(my_str_1, my_str_2); } }
출력
The common characters between the two strings in alphabetical order is : aaeilmpsst
Demo라는 클래스에는 'common_chars'라는 함수가 포함되어 있습니다. 이 함수는 크기가 26(영어로 26개 알파벳을 나타냄)의 정수 배열 2개를 선언합니다. 길이는 각각 두 개의 다른 변수에 저장됩니다.
배열은 'a'의 ASCII와 모든 문자의 ASCII 사이의 다른 인덱스에서 반복되며, 문자 'a'의 ASCII는 모든 문자의 ASCII 값에서 빼고 1씩 증가합니다. 이렇게 하면 다음의 값만 채워집니다. 공통 배열입니다. 두 어레이의 최소 문자 수가 계산되어 콘솔에 인쇄됩니다. 메인 함수에서는 두 개의 문자열을 정의하고 이 두 문자열을 매개변수로 전달하여 함수를 호출합니다.