2010-12-14 31 views
1
import java.util.Scanner; 
import java.lang.String; 

public class Test 
{ 
    public static void main(String[] args) 
    { 
     char[] sArray; 

     Scanner scan = new Scanner(System.in); 

     System.out.print("Enter a Palindrome : "); 
     String s = scan.nextLine(); 
     s = s.trim(); 

     sArray = new char[s.length()]; 

     for(int i = 0; i < s.length(); i++) 
     { 
      sArray[i] = s.charAt(i); 
      System.out.println(sArray[i]); 
     } 
    } 
} 
+3

Qu'est-ce qui ne fonctionne pas? Quelle est la différence entre vos attentes et le résultat? – thejh

+0

Qu'est-ce qui ne va pas exactement? – jjnguy

+0

@thejh: Im tapant par exemple STR ING .... attendant STRING retour .. –

Répondre

4

La découpe ne fonctionne pas comme vous le souhaitez. trim() supprime uniquement les espaces à partir des extrémités de la chaîne.

Le documentation for trim():

Renvoie une copie de la chaîne, avec leader et arrière espaces blancs omis.

Pour supprimer tous les espaces essayez ce qui suit au lieu d'appeler trim():

s = s.replaceAll("\\s+", ""); 

Il utilise une expression régulière très simple pour éliminer tous les espaces partout dans la chaîne.

2

La fonction trim supprime avant et arrière espaces, pas tous les espaces. Si vous souhaitez supprimer tous les espaces, vous pouvez appeler s = s.replaceAll(" ", "").

+0

oh ok alors comment pourrais-je obtenir mon résultat attendu? –

0

grande réponse jjnguy et slals

J'utilise maintenant

myinput = myEditTextbox.getText().toString; 
myinput = myinput.replaceAll("\\S+", ""); 

pour nettoyer tous les espaces laissés accidentellement dans une boîte edittext par l'utilisateur. Il m'a également dirigé à apprendre des expressions régulières que je ne connaissais pas. Merci