Bonjour,
je suis étudiant et débutant en java, je cherche à écrire une fonction qui prend en paramètre 2 chaînes de caractères et teste si les mots sont des anagrammes ou non de manière récursive. Je dois utiliser une booléenne : public static boolean isAnagramRec(String s1, String s2)

Pour effectuer cette fonction, je compte procéder de la manière suivante :
dans le Main, j'initialise : static bolean check = false;

1) mettre les 2 chaînes de caractères en minuscule

2)tester si les 2 chaînes ont la même longueur

3) si c'est le cas, si la longueur des 2 chaînes est de 1, on regarde si les 2 caractères sont identiques, si c'est le cas, on donne à check la valeur true

4) si la longueur des chaînes est différente de 1, on trie les 2 chaînes de caractères par ordre croissant (cad dans l'ordre alphabétique : "bac"-> "abc"), pour k allant de 0 à [longueur de la chaîne de caractère], on teste si le premier élément de la première chaîne est égal à celui de la deuxième chaîne, si c'est le cas, on remplace le premier élément des 2 chaînes par "", cad, on supprime le premier élément de la chaîne, après cela, on appelle la fonction isAnagramRec(s1, s2)

J'ai codé un programme(ci-dessous), cependant je n'arrive pas à trier les chaînes de caractères s1, et s2, j'ai l'impression que ce n'est pas possible car String est un Object, mais comment faire alors?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package tp_note_2;
 
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
 
public class Main {
	Scanner scanner = new Scanner(System.in);
	static boolean check = false;
 
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
 
		System.out.println("Quel est le premier mot que vous souhaitez prendre en paramètre?");
		String s1 = scanner.nextLine();
		System.out.println("Quel est le deuxième mot que vous souhaitez prendre en paramètre?");
		String s2 = scanner.nextLine();
		System.out.println(isAnagramRec(s1, s2));
}
public static boolean isAnagramRec(String s1, String s2) {
		s1 = s1.toLowerCase();
		s2 = s2.toLowerCase();
		if (s1.length() == s2.length()) {
			if (s1.length() == 1) {
				if ((s1).compareTo(s2) == 0) {
					check= true;
				}
			} else {
				//On trie par ordre croissant s1 et s2
				char[] lettres1 = s1.toCharArray();
				Arrays.sort(lettres1);
				s1="";
				for(int k = 0; k < s1.length(); k ++) {
					s1+=String.valueOf(lettres1[k]);
				}
				char[] lettres2 = s2.toCharArray();
				Arrays.sort(lettres2);
				s2="";
				for(int k = 0; k < s2.length(); k ++) {
					s2+=String.valueOf(lettres2[k]);
				}
				if (s1.charAt(0) == (s2.charAt(0))) {
					s1 = s1.replace(String.valueOf(s1.charAt(0)), "");
					s2 = s2.replace(String.valueOf(s2.charAt(0)), "");
					isAnagramRec(s1, s2);
				}
			}
		}
		return check;
	}
Pourriez-vous m'aider s'il vous plaît? En vous remerciant d'avance.