2017-05-24 1 views
1

Le problème est résolu mais j'ai besoin d'aide pour créer une méthode pour l'une des parties du code. Toute contribution sera appréciée. J'ai essayé d'utiliser des méthodes void mais cela n'a pas fonctionné. J'ai mis en évidence où je veux que le code soit une méthode.Débogage du programme Palindrome

import java.util.*; 
public class Finalpal { 

public Finalpal() { 
    // TODO Auto-generated constructor stub 
} 

public static void main(String[] args) 
{ 
Scanner scan = new Scanner(System.in); 

    String word; 
    int len, counter = 0; 

    System.out.println("Enter your word"); 
    word = scan.next(); 

    word = word.toUpperCase(); 

    len = word.length(); 

    char array[] = new char[len]; 
    char reverse[] = new char[len]; 

    for (int i=0; i < len; i++) 
    { 
     array[i] = word.charAt(i); 
    } 
    for (int j=len-1; j>=0; j--) 
    { 
     array[counter] = word.charAt(j); 
     counter++; 

    } 

    // This part needs to be a method 
    for (int k = 0; k < len; k++) 
    { 
     if (array[k] != reverse[k]) 
     { 
      System.out.println("Not a palindrome"); 
      break; 
     } 
     if ((array[k] == reverse[k]) && (k == len -1)) 
     { 
      System.out.println("It is a palindrome"); 
     } 
    } 

} 

} 

Répondre

4

Vous ne comblent pas dans le tableau reverse

essayer

for (int j=len-1; j>=0; j--) 
{ 
    reverse[counter] = word.charAt(j); 
    counter++; 

} 
+0

Merci Corriger Effrayant –

+0

Pouvez-vous s'il vous plaît m'aider à faire une partie de ce code dans une méthode. –

+2

allez, essayez vous-même d'abord, apprendre de ** vos ** erreurs. –

0

Vous avez tableau utilisé [contre] au lieu de [contre] inverse. Vous avez jamais rempli tableau inverse

0

Il y a une façon de le faire sans créer une chaîne inversée à comparer à l'original ...

Si je connaissais la longueur de la chaîne, je pouvais faire une boucle qui vérifiait les caractères à chaque extrémité pour voir si elles étaient les mêmes et se déplacent vers l'intérieur:

[a] [b] [c] [b] [a]

Loop 0: a = a 
Loop 1: b = b 
Loop 2: c = c 
Result: Palindrome! 

Fonctions dont vous avez besoin:

int len = String.length(); 
char c = String.charAt(int);