IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Nettoyage de String


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    535
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 535
    Par défaut Nettoyage de String
    Salut!

    Je voudrais pouvoir nettoyer une chaine des caractères gênants, comme:
    "
    '
    /
    \
    \n (et tous les autres \*)
    et tant qu'on y est les caractères unicode genre diamants, carrés, etc...

    Y a t-il une fonction standard qui fait ça et que je n'aurais pas trouvé?
    Ou a programmer à la mano?
    -> pour chaque car à remplacer?
    * s.replaceAll("\","")
    * s.replaceAll("'","")
    * etc... pas top

    OU
    -> plutôt avec un truc du style s.replaceAll("[^a-zA-Z0-9]","") à adapter, parce que là les accents seraient perdus par exemple.
    * mais alors quelle chaine de pattern donner?
    * je rame

    Qq'un aurait-il déjà été confronté à ça et aurait un ch'ti bout de code?

    Merci.

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    535
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 535
    Par défaut
    A défaut de mieux, j'ai bricolé ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    public static String cleanString(String string)
    {
    	StringBuilder sb = new StringBuilder();
            for (int i=0; i<string.length(); i++) 
            {
     
            	switch((int)string.charAt(i))
            	{
            	case 39:					// '
            	case 34:					// "
            	case 10:		sb.append(""); break;	// lf
            	default:		sb.append(string.charAt(i)); break;	
            	}
            }
            return sb.toString();
    }
    Mais si q'un a mieux, plus générique, je prends!

  3. #3
    Membre Expert
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Par défaut
    Jettes un oeil à http://stackoverflow.com/questions/7...from-an-string

    Par ailleurs, cette question a plutôt sa place dans le forum Java (car elle n'est pas spécifique à Android)
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    535
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 535
    Par défaut
    L'habitude oui.
    Merci.

  5. #5
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Il y a surtout la fonction Character.isXXXXX() si je ne m'abuse....
    Parcequ'il est pas facile d'énumérer tous les caractères non printable (espace non-secable, fin de paragraphe, ...)

    J'ai ça comme fonction utilitaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
        public static String cleanUp(final CharSequence s, boolean trim)
        {
            StringBuilder ret = new StringBuilder(s.length());
            boolean inWhiteSpace = trim;
            for (int i = 0; (i < s.length()); ) {
                char c = s.charAt(i++);
                if (Character.isWhitespace(c) || Character.isISOControl(c)) {
                    if (!inWhiteSpace) {
                        inWhiteSpace = true;
                        ret.append(' ');
                    }
                } else {
                    inWhiteSpace = false;
                    ret.append(c);
                }
            }
            if (trim && inWhiteSpace)
                return (ret.length() > 1) ? ret.substring(0, ret.length()-1) : ""; //$NON-NLS-1$
            return ret.toString();
        }

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    535
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 535
    Par défaut
    Oui, et le pire étant le " dans des ""!
    Pour ça que je suis passé aux codes ascii.

    Mais ta soluce me plait bien aussi, merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Nettoyage de string avec Application.WorksheetFunction.clean
    Par Gorzyne dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 05/02/2013, 11h10
  2. éliminer un caractere d'un string
    Par no-vice dans le forum Langage
    Réponses: 5
    Dernier message: 09/08/2002, 14h55
  3. URGENT: retour de string
    Par Pinggui dans le forum CORBA
    Réponses: 4
    Dernier message: 15/07/2002, 09h47
  4. Réponses: 2
    Dernier message: 05/06/2002, 12h29
  5. String Grid et choix d'une couleur pour une ligne
    Par Gigottine dans le forum C++Builder
    Réponses: 12
    Dernier message: 17/05/2002, 15h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo