空间进入控制台

时间:2016-04-01 13:15:31

标签: java

我编写了一个简单的程序,用于删除文本中的字母或单词。一切都很完美,但我不能在控制台中写“”[space]。当我这样做时它什么也没做。我应该怎么写入控制台告诉它我想从文本中删除空格?

import java.io.*;
import java.util.*;
public class StringDelete {
public static void main(String args[]) {
    String x = "bla bla bla";
            System.out.println(x);
    System.out.println("What do you want to delete?");
    Scanner sc = new Scanner(System.in);
    String fr = sc.next();
    int po = 0;
    int le = x.length();
    int i = 0;
    do {
        po = x.substring(i).indexOf(fr);
        if (po != -1) {
            x = x.substring(0, po+i) + x.substring(po+i + 1);
        }
        i += po;
    }while(i<le&&po!=-1);
    System.out.println(x);
}
}

2 个答案:

答案 0 :(得分:0)

您应该将行String fr = sc.next();替换为String fr = sc.nextLine();

您可以找到更多信息here

答案 1 :(得分:0)

下面:

String fr = sc.next();

您正在使用next()方法。

当此方法遇到空格字符时,它会返回该字符前的字符串。

例如:

  • 为“asd fgh”它返回asd“。
  • for“xyz”返回“xyz”
  • for“”它重新出现“”(空字符串)

因此,当你写“”(空格)时,它前面的字符串是空的String,它返回空字符串。

而不是next(),请使用nextLine()

String fr = sc.nextLine();