如何删除所有的空格在Java [复制](How to remove all white spaces

2019-07-23 11:25发布

这个问题已经在这里有一个答案:

  • 去除空白的字符串在Java中 31个回答

我有一个编程作业和部分它需要我做的代码,从用户读取一行并删除该行内的所有空白。 行可以由一个或多个字的。

我试图用这个程序做的是,直到它找到一个空格它分析每个字符,然后将该串保存为第一个标记。 然后再次循环,直到它到达没有更多标记或行的结尾。

我不断收到这个当我尝试编译:

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。

Answer 1:

java.lang.String类有方法, substringsubstr ,这就是错误的程序。

此外,你可以,如果你在使用正则表达式确定在一个单行做到这一点。

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


Answer 2:

为什么不使用这个正则表达式?

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

在一个正则表达式的上下文中, \s将删除任何是空格字符(包括空格,制表符字符等)。 你需要这样的正则表达式变成逃避Java中的反斜杠\\s 。 此外, 由于字符串是不可变这所分配的正则表达式的返回值是很重要的 a



Answer 3:

这样做,而无需使用的最直观的方式literalsregular expressions

yourString.replaceAll(" ","");


Answer 4:

替换空字符字符串的所有空间。

String lineWithoutSpaces = line.replaceAll("\\s+","");


Answer 5:

试试这个:

String str = "Your string with     spaces";
str = str.replace(" " , "");


Answer 6:

尝试:

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

秒-表示空格字符(制表符等)



Answer 7:

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


    }
}


Answer 8:

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;

}

这是最简单,最直接的方法,从一个字符串中删除空格。



Answer 9:

不能你只需要使用与string.replace(””, “”);



Answer 10:

您可以使用正则表达式来删除空格,尝试片断:

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


Answer 11:

trim.java:30: cannot find symbol
symbol  : method substr(int,int)
location: class java.lang.String
b = a.substr(i,160) ;

有没有像法substr在String类。

使用String.substring()方法。



Answer 12:

String a="string with                multi spaces ";
//or this 
String b= a.replaceAll("\\s+"," ");

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

//它做工精细任何空格

*不要忘记刺痛退格



Answer 13:

boolean flag = true;
while(flag) {
    s = s.replaceAll(" ", "");
    if (!s.contains(" "))
        flag = false;
}
return s;


Answer 14:

String a="string with                multi spaces ";

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

//它做工精细任何空格



文章来源: How to remove all white spaces in java [duplicate]