我编写了一个程序来删除字符串中的空格,但是没有收到想要的结果。
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);
}
}
请帮助我。
答案 0 :(得分:3)
有一种简单的删除空格的方法,
replace(" ", "");
您的问题是您正在使用next()
,而应该使用nextLine()
。
〜Elliot's Comment〜
阅读文档,
...此方法返回当前行的其余部分,但不包括末尾的任何行分隔符...
和
从此扫描器中查找并返回下一个完整令牌...
完整代码应该是
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);
}
}