Problème d'instanciation d'un tableau en java

Résolu
cs_umy Messages postés 1 Date d'inscription lundi 4 avril 2005 Statut Membre Dernière intervention 4 février 2006 - 4 févr. 2006 à 21:45
Twinuts Messages postés 5373 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 10 août 2022 - 5 févr. 2006 à 00:07
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

Twinuts Messages postés 5373 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 10 août 2022 110
5 févr. 2006 à 00:07
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
3