Как удалить все пробелы в java [дубликаты]

    

На этот вопрос уже есть ответ здесь:

    

У меня есть задание на программирование, и часть его требует от меня создания кода, который читает строку от пользователя и удаляет все пробелы в этой строке. строка может состоять из одного слова или более.

То, что я пытался сделать с этой программой, - это проанализировать каждый символ, пока он не найдет пробел, а затем сохранить эту подстроку в качестве первого токена. затем повторяйте цикл до тех пор, пока он не достигнет жетонов или конца строки.

Я продолжаю получать это, когда пытаюсь его скомпилировать:

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)

Вот код

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 ;
           }
         }
        }
}

более простые способы сделать это приветствуются, но я все еще хочу, чтобы эта программа работала.

и я не могу использовать часовых на входе.


Спасибо всем за помощь,

Я воспользуюсь более простым методом и прочитаю Javadoc.

79 голосов | спросил Aiman Kh 26 MarpmTue, 26 Mar 2013 13:16:40 +04002013-03-26T13:16:40+04:0001 2013, 13:16:40

14 ответов


0

java.lang.String класс имеет метод substring не substr, это ошибка в вашей программе.

Более того, вы можете сделать это одной строкой, если вы хорошо используете регулярное выражение.

a.replaceAll("\\s+","");
ответил kaysush 26 MarpmTue, 26 Mar 2013 13:19:37 +04002013-03-26T13:19:37+04:0001 2013, 13:19:37
0

Почему бы не использовать регулярные выражения для этого?

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

В контексте регулярного выражения \s удалит все, что является пробелом (включая пробел, символы табуляции и т. д.). Вам нужно избежать обратной косой черты в Java, чтобы регулярное выражение превратилось в \\s. Кроме того, , поскольку строки являются неизменяемыми, важно назначить возвращаемое значение регулярного выражения для a.

ответил Kevin Bowersox 26 MarpmTue, 26 Mar 2013 13:19:52 +04002013-03-26T13:19:52+04:0001 2013, 13:19:52
0

Наиболее интуитивно понятный способ сделать это без использования literals или regular expressions:

yourString.replaceAll(" ","");
ответил Rudziankoŭ 6 AMpWed, 06 Apr 2016 10:31:48 +030031Wednesday 2016, 10:31:48
0

Замените все пробелы в строке пустым символом.

String lineWithoutSpaces = line.replaceAll("\\s+","");
ответил Ankur Shanbhag 26 MarpmTue, 26 Mar 2013 13:19:50 +04002013-03-26T13:19:50+04:0001 2013, 13:19:50
0

Попробуйте это:

String str = "Your string with     spaces";
str = str.replace(" " , "");
ответил Achintya Jha 26 MarpmTue, 26 Mar 2013 13:19:06 +04002013-03-26T13:19:06+04:0001 2013, 13:19:06
0

Try:

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

s - указывает пробел (символы табуляции и т. д.)

ответил CloudyMarble 26 MarpmTue, 26 Mar 2013 13:19:09 +04002013-03-26T13:19:09+04:0001 2013, 13:19:09
0
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);


    }
}
ответил Shivansh Rajan 26 MarpmTue, 26 Mar 2013 13:38:26 +04002013-03-26T13:38:26+04:0001 2013, 13:38:26
0
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;

}

Это самый простой и простой способ удаления пробелов из строки.

ответил Mohamad Yaghmour 12 42015vEurope/Moscow11bEurope/MoscowThu, 12 Nov 2015 13:24:47 +0300 2015, 13:24:47
0

Неужели вы просто используете String.replace ("", "");

ответил Isaac 26 MarpmTue, 26 Mar 2013 13:20:56 +04002013-03-26T13:20:56+04:0001 2013, 13:20:56
0

Вы можете использовать регулярное выражение для удаления пробелов, попробуйте этот фрагмент:

Scanner scan = new Scanner(System.in);
    System.out.println(scan.nextLine().replaceAll(" ", ""));
ответил javadev 26 MarpmTue, 26 Mar 2013 13:21:29 +04002013-03-26T13:21:29+04:0001 2013, 13:21:29
0
trim.java:30: cannot find symbol
symbol  : method substr(int,int)
location: class java.lang.String
b = a.substr(i,160) ;

В классе String нет метода, подобного substr.

используйте метод String.substring ().

ответил AmitG 26 MarpmTue, 26 Mar 2013 13:21:55 +04002013-03-26T13:21:55+04:0001 2013, 13:21:55
0
String a="string with                multi spaces ";
//or this 
String b= a.replaceAll("\\s+"," ");

String c= a.replace("    "," ").replace("   "," ").replace("  "," ").replace("   "," ").replace("  "," ");

//он отлично работает с любыми пробелами

* не забывайте пробел в жале b

ответил fatsoft 17 FebruaryEurope/MoscowbWed, 17 Feb 2016 03:55:39 +0300000000amWed, 17 Feb 2016 03:55:39 +030016 2016, 03:55:39
0
boolean flag = true;
while(flag) {
    s = s.replaceAll(" ", "");
    if (!s.contains(" "))
        flag = false;
}
return s;
ответил Lalit 6 AMpWed, 06 Apr 2016 09:49:21 +030049Wednesday 2016, 09:49:21
0
String a="string with                multi spaces ";

String b= a.replace("    "," ").replace("   "," ").replace("  "," ").replace("   "," ").replace("  "," ");

//он отлично работает с любыми пробелами

ответил fatsoft 17 FebruaryEurope/MoscowbWed, 17 Feb 2016 02:07:47 +0300000000amWed, 17 Feb 2016 02:07:47 +030016 2016, 02:07:47

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132