Partage
  • Partager sur Facebook
  • Partager sur Twitter

Exception in thread "main" java.lang.Error: Unres

    25 juillet 2016 à 14:19:48

    Une erreur survient lorsque je tente de lancer ce petit programme(il permet d'affiche tous les combinaison possible d'une chaîne donnée ),

    j'arrive pas comprendre pourquoi en java en peut pas modifier un caractère d'une chaîne (ligne 16)

    import java.util.Scanner;
    class code {
    	static Scanner x=new Scanner(System.in);
    public static void main(String [] args )
    {
    	String ch=x.next(),ch1="";
    	int actuelle=0;
    	affiche(ch,ch1,actuelle);
    }
    static void affiche(String ch,String ch1,int actuelle)
    {
    	int j ;
    	for(j=0;j<ch.length();j++)
    	{
    		ch1.charAt(actuelle)=ch.charAt(j);
    		if(actuelle!=ch.length()-1)
    			affiche(ch,ch1,actuelle+1);
    		else
    			System.out.println(ch1);
    	}
    }
    }
    



    exemple 

    ch=abc

    -->

    aaa
    aab
    aac
    aba
    abb
    abc
    aca
    acb
    acc
    baa
    bab
    bac
    bba
    bbb
    bbc
    bca
    bcb
    bcc
    caa
    cab
    cac
    cba
    cbb
    cbc
    cca
    ccb
    ccc
    • Partager sur Facebook
    • Partager sur Twitter
      25 juillet 2016 à 14:29:23

      ch1.charAt(actuelle)=ch.charAt(j);

      charAt renvoie un char, pas une variable. Tu peux seulement accéder à ce caractère, pas le modifier. De même on ne peut pas modifier une String , il faut en créer une autre !

      Une alternative est d'utiliser un tableau de char

      String ch = "abc";
      char[] tmp = ch.toCharArray();
      tmp[0] = 'x';
      ch = String.valueOf(tmp);



      -
      Edité par Kabukki 25 juillet 2016 à 14:30:23

      • Partager sur Facebook
      • Partager sur Twitter

      Exception in thread "main" java.lang.Error: Unres

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown