java删除空格也就是删除空格后面的所有内容

java删除空格也就是删除空格后面的所有内容,java,string,replaceall,Java,String,Replaceall,为什么x.replaceAll(“\\s+”,“”)正在删除第一个空格及其后的所有内容?如果在执行replaceAll()并打印x之后x最初是a,则它只打印a而不是aa 这是一个更大项目的一部分,但出于测试目的,我在一个新的java主文件上单独尝试了它,但仍然执行相同的操作这是完整的程序: import java.util.*; public class test { public static void main (String args[]){ Scanner inp

为什么
x.replaceAll(“\\s+”,“”)
正在删除第一个空格及其后的所有内容?如果在执行
replaceAll()
并打印
x
之后
x
最初是
a
,则它只打印
a
而不是
aa

这是一个更大项目的一部分,但出于测试目的,我在一个新的java主文件上单独尝试了它,但仍然执行相同的操作这是完整的程序:

import java.util.*;
public class test {
    public static void main (String args[]){
        Scanner input = new Scanner(System.in);
        String y = input.next();
        String x = y.replaceAll("\\s+","");
        System.out.println(x);      
}

}
嗯。试试这个:

public static void main (String[] args) throws java.lang.Exception
    {
        Scanner input = new Scanner(System.in);
        String y = input.nextLine();
        String x = y.replaceAll("\\s+","");
        System.out.println(x); 
    }

使用nextLine获取整个字符串。

默认情况下,扫描仪使用一个或多个空格作为分隔符,
next()
在分隔符之间只返回一个标记。因此,在像
foo bar baz
next()
这样的输入情况下,另一次调用
next()
将返回
baz
和另一次调用
baz


如果您想阅读整行,请使用
nextLine()
but

我刚试过,我得到了aa。请发布一个。刚刚编辑的问题。我想我自己找到了答案。我应该做下一行()而不是下一行(),对吗?是的。这就是问题所在。下次,为了更好更快的帮助,请先发布一个MCVE。此外,您还可以使用调试器帮助解决代码中的问题。为什么不使用String.replace(“,”)?这将在不使用正则表达式的情况下得到所需的结果。这只是建议OP提供更多细节的评论。@j.doe,编辑带a和打印aa的代码