我写了一个简单的程序,从文本中删除字母或单词。一切正常,但我无法在控制台中写" " [空格]。当我这样做时,它什么也没做。我应该在控制台中写入什么来告诉它我想从文本中删除空格?
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);
}
}
在这里:
String fr = sc.next();
您正在使用next()
方法。
当此方法遇到空格字符时,它将返回该字符之前的字符串。
例如:
- 对于"ASD FGH",它返回 ASD"。 对于"xyz">
- ,它返回"xyz"> 对于" "
- 它瓮 "(空字符串(
因此,当你写" "(空格(时,它前面的字符串是空字符串,它返回空字符串。
代替next()
,使用 nextLine()
。
String fr = sc.nextLine();
您应该将行String fr = sc.next();
替换为 String fr = sc.nextLine();
。
您可以在此处找到更多信息。