Bonjour,
Découper par rapport à un entier (une taille donc), c'est pas terrible. Du moins si tu veux réutiliser ton code par la suite c'est trop spécifique, il faudrait que tu recalcule et ré-ajuste ces entiers pour justement pas que tu ai un indexOutOfBoundException si tu change l'url en entrée.
Ce que je te conseille de faire c'est de découper par rapport à ce que tu sais qu'il y a dans ta chaine de caractère.
Par exemple tu peux en premier lieu supprimer le dernier "/" si ta chaine fini par ce caractère.
Ensuite tu découpe par rapport au dernier "/" pour récupérer ce qui vient après :
String url="http://localhost:8080/mdp=blablabla&&login=bliblibli/";
if ( url.endsWith("/") )
url = url.substring(0,url.length-1);
// --- Take only after last character '/'
url = url.substring(url.lastIndexOf("/"));
Ensuite pour ce qui est de récupérer les paramètres, il te suffit de faire un split de ta chaine de caractère selon la chaine "&&", puis de traiter tes paramètres :
String[] params = url.split("&&");
String[] myCurrParam = null;
String login = "", mdp = "";
for ( int i = 0; i < params.length; i++ ){
// --- Split by character '=' in order to retrieve parameter name & value
myCurrParam = params[i].split("=");
if ( myCurrParam != null && myCurrParam.length >= 2 ){
if ( myCurrParam[0].equalsIgnoreCase("login") )
login = myCurrParam[1];
else if ( myCurrParam[0].equalsIgnoreCase("mdp") )
mdp = myCurrParam[1];
}
else
System.err.println("Bad parameter in url : ignored.");
}
System.out.println("Login : "+login);
System.out.println("Mot de passe : "+mdp);
Le code donné ci-dessus a été tapé directement sur le forum, donc n'est ni testé ni validé au niveau de la syntaxe, mai ça devrait à priori fonctionner correctement.
~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~