Cannot convert from String to int

Résolu
Bonjour,
comme vous avez pu le lire j'ai cette erreur dans mon code mais je ne sais pas comment y pallier.
Voici mon code:

public void jouerSudoku() {
		

		int[][] tab2 = new int[9][9];
		

		int condition_ligne = 0;

		while (condition_ligne == 0) {
			System.out.print(" Veuillez choisir une ligne:");

			_ligne = sudoku.nextLine();
			
			if (Integer.parseInt(_ligne) > tab2.length) {

				System.out
						.println("Vous devez inserez un nombre compris entre 1 et 9");

				condition_ligne = 0;
			}

			else if (Integer.parseInt(_ligne) < tab2.length)

			{

				System.out
						.println("Vous devez inserez un nombre compris entre 1 et 9");

				condition_ligne = 0;
			}

			else {

				condition_ligne = 1;
				

			}

		}


4 réponses

  1. Modérateur
    Bonjour,

    Sur quelle ligne porte le message d'erreur ?

    De plus de quel type est la variable
    _ligne
    ? (qui soit dit en passant devrait être déclarée dans la méthode, pas ailleurs...)
    1. Le message d'erreur est ligne 12 pour la variable _ligne il s'agit d'un int, en fait les variables sont déclarées mais dans une autre partie du programme.
      1. Modérateur
        "les variables sont déclarées mais dans une autre partie du programme"
        Il n'y a pas de raison, ce n'est pas comme cela que cela doit être fait en Java...

        "la variable _ligne il s'agit d'un int"
        C'est ça ton problème, tu le traites partout comme si c'était un String.
        _ligne = sudoku.nextLine();
        nextLine renvoie un String,
        Integer.parseInt(_ligne)
        , parseInt s'applique à un String...
    2. D'accord je vois, mais par quoi il faudrait que je remplace _ligne=sudoku.nextLine() pour que cela fonctionne avec un int?
      1. Modérateur
        Exactement la même chose que tu as mis partout pour transformer le String en int, tu dois utiliser Integer.parseInt...
    3. Mais oui suis-je bete, merci beaucoup de ton aide.
      Bonne soirée