在Java中从字符串中删除空间的程序

时间:2018-08-05 05:35:35

标签: java eclipse

我编写了一个程序来删除字符串中的空格,但是没有收到想要的结果。

import java.util.Scanner;
public class remove_space {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);
        System.out.print("please Enter A String: ");
        String A = input.next();
        String B = "";

        for (int i = 0; i < A.length(); i++) {
            if (A.charAt(i) != ' ') {
                B += Character.toString(A.charAt(i));
            }
        }

        System.out.println(B);
    }
}

请帮助我。

3 个答案:

答案 0 :(得分:3)

有一种简单的删除空格的方法,

replace(" ", "");

您的问题是您正在使用next(),而应该使用nextLine()
Elliot's Comment

阅读文档,

  

nextLine()

     

...此方法返回当前行的其余部分,但不包括末尾的任何行分隔符...

  

next()

     

从此扫描器中查找并返回下一个完整令牌...


完整代码应该是

Scanner input = new Scanner(System.in);
System.out.print("please Enter A String: ");
String A = input.nextLine().replace(" ", "");
System.out.println(A);

答案 1 :(得分:2)

您的代码String A =input.next();中存在错误,它将仅读取行中的单个令牌,因此您必须使用String A =input.nextLine();来读取整行

答案 2 :(得分:1)

您可以使用isWhitespace方法删除所有空格,例如空格或换行。 一个简单的答案就是

public class Test
{
  // arguments are passed using the text field below this editor
 public static void main(String[] args) {
    String withSpace = "Remove white space from line";
    StringBuilder removeSpace = new StringBuilder();

    for (int i = 0; i<withSpace.length();i++){
        if(!Character.isWhitespace(withSpace.charAt(i))){
            removeSpace=removeSpace.append(withSpace.charAt(i));
        }
    }
    System.out.println(removeSpace);
}

}