131 votes

Comment supprimer tous les espaces blancs en java

J'ai un devoir de programmation et une partie de celui-ci me demande de créer un code qui lit une ligne de l'utilisateur et supprime tous les espaces blancs dans cette ligne. La ligne peut être composée d'un mot ou plus.

Ce que j'essaie de faire avec ce programme, c'est d'analyser chaque caractère jusqu'à ce qu'il trouve un espace, puis de sauvegarder cette sous-chaîne en tant que premier jeton, puis de reboucler jusqu'à ce qu'il n'y ait plus de jetons ou jusqu'à la fin de la ligne.

Je continue à obtenir ceci lorsque j'essaie de le compiler :

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index   out of range: 1
    at java.lang.String.charAt(String.java:694)
    at trim.main(trim.java:23)

Voici le code

import java.util.Scanner ;
import java.lang.Character;
import java.lang.String ;
public class trim
{
        public static void main (String[]args)
        {

        String a  ;
        String b  ;
        String c ;
        char aChar ;
        int i = 0 ;

        Scanner scan = new Scanner(System.in);

        a = scan.nextLine();
        a =a.trim() ;

         for ( ; i >= 0 ; i++ )
         {
           aChar = a.charAt(i) ;
           if (aChar != 32)
           {
            a = a.substring(0,i+1);
           }
           else
           {
            b = a.substring(i,160) ;
            b= b.trim();
            c = c + a ;
            c = c.trim() ;
            a = b ;
            i = 0 ;
           }
           if (b.equals(null))
           {
            i = -1 ;
           }
         }
        }
}

Des moyens plus faciles de le faire sont appréciés, mais je veux quand même faire fonctionner ce programme.

et je ne peux pas utiliser les sentinelles dans l'entrée.


Merci à tous pour votre aide,

Je vais utiliser la méthode la plus simple, et je vais lire la javadoc.

15voto

CloudyMarble Points 16155

Essayez :

  string output = YourString.replaceAll("\\s","")

s - indique un caractère d'espace (caractères de tabulation, etc.)

10voto

Mohamad Yaghmour Points 101
public static String removeSpace(String s) {
    String withoutspaces = "";
    for (int i = 0; i < s.length(); i++) {
        if (s.charAt(i) != ' ')
            withoutspaces += s.charAt(i);

    }
    return withoutspaces;

}

Il s'agit de la méthode la plus simple et la plus directe pour supprimer les espaces d'une chaîne.

7voto

Shivansh Rajan Points 81
package com.infy.test;

import java.util.Scanner ;
import java.lang.String ;

public class Test1 {

    public static void main (String[]args)
    {

        String a  =null;

        Scanner scan = new Scanner(System.in);
        System.out.println("*********White Space Remover Program************\n");
        System.out.println("Enter your string\n");
    a = scan.nextLine();
        System.out.println("Input String is  :\n"+a);

        String b= a.replaceAll("\\s+","");

        System.out.println("\nOutput String is  :\n"+b);

    }
}

4voto

Isaac Points 56

Vous ne pouvez pas simplement utiliser String.replace(" ", "") ;

3voto

javadev Points 796

Vous pouvez utiliser une expression régulière pour supprimer les espaces blancs, essayez cet extrait :

Scanner scan = new Scanner(System.in);
    System.out.println(scan.nextLine().replaceAll(" ", ""));

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X