Problème d'instanciation d'un tableau en java [Résolu]

Signaler
Messages postés
1
Date d'inscription
lundi 4 avril 2005
Statut
Membre
Dernière intervention
4 février 2006
-
Messages postés
5363
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
30 avril 2021
-
Je suis débutant et jai écris quelques lignes de codes et je ne sais
pas corrigé mon erreur qui est la suivante:Exception in thread "main"
java.lang.NullPointerException

Le code est le suivant :

import java.util.Scanner ;



class PalindromeMethode2{



static char[] tabcar;



public static void main(String[] args){

// Déclaration des variables

String Phraseavant = null ;

String Phraseapres;



// Entrez la phrase par l'opérateur.

System.out.print("Entrez votre phrase :");

Phraseavant=Phrase();

System.out.println("La phrase initiale est :"+Phraseavant);



// Eliminer la ponctuation.

Phraseapres=Eliminer(Phraseavant);

System.out.println("La phrase après traitement est :"+Phraseapres);



// Mettre la chaine de caractères dans un tableau.

int cpt=0;

char[] tabcar=Phraseapres.toCharArray();

System.out.println("dimension = "+tabcar.length);



cpt=Tester(cpt);



if(cpt==0)
System.out.println("Cette phrase ou ce mot n'est pas un palindrome");

else System.out.println("Cette phrase ou ce mot est un palindrome");

}

//*************************************************************

//
Méthode pour écrire une phrase au
clavier
*

//*************************************************************

public static String Phrase(){

Scanner sc = new Scanner(System.in);

String a = sc.nextLine();

return a ;

}

//*************************************************************

//
Méthode pour éliminer la
ponctuation
*

//*************************************************************

public static String Eliminer(String s){

String x="";

for(int i=0;i<s.length();i++)

{


if(s.charAt(i)!=' ' && s.charAt(i)!='.' &&
s.charAt(i)!=',' && s.charAt(i)!='?' &&
s.charAt(i)!='!')


x = x+s.charAt(i);

}

return x;

}

//*************************************************************

//
Méthode pour tester les
caractères
*

//*************************************************************

public static int Tester(int x){

int i; int j;

x=0;



for(i=0,j=tabcar.length-1;i<j;i++,j--)

{

if(tabcar[i]==tabcar[j])

{x++;

System.out.println("x = :"+x);}

}

return x;

}

}

1 réponse

Messages postés
5363
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
30 avril 2021
110
Salut,



dans ton main tu fais 'char[] tabcar=Phraseapres.toCharArray();'

ici tabcar représente une variable local donc la variable globale reste null

etu vu que dans ta methode Tester(int x) tu utilise tabcar il est normal que tu te tape un NullPointerException



pour corriger ton problème remplace ta ligne

char[] tabcar=Phraseapres.toCharArray();

par la ligne

tabcar=Phraseapres.toCharArray();

WORA