Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么在使用trim()时不删除前导空格?_Java_String_Trim - Fatal编程技术网

Java 为什么在使用trim()时不删除前导空格?

Java 为什么在使用trim()时不删除前导空格?,java,string,trim,Java,String,Trim,我需要访问java源文件,并使用字符串的方法trim()删除任何前导和尾随空格。但是,代码属于某个范围,例如: if(name.equals("joe")){ System.out.println(name); } 打印语句的空白未被完全删除。有没有一种方法可以同时删除这些空白 谢谢 编辑:我确实使用了一个新变量: String n = statements.get(i).toString().trim(); System.out.println(n); 但是,

我需要访问java源文件,并使用字符串的方法trim()删除任何前导和尾随空格。但是,代码属于某个范围,例如:

if(name.equals("joe")){
   System.out.println(name);
}
打印语句的空白未被完全删除。有没有一种方法可以同时删除这些空白

谢谢

编辑:我确实使用了一个新变量:

String n = statements.get(i).toString().trim();
            System.out.println(n);
但是,输出仍然如下所示:

System.out.println("NAME:" + m.getName());
BlockStmt bs = m.getBody();
List<Statement> statements = bs.getStmts();
for (int i = 0; i < statements.size(); i++) {
    if ((statements.get(i).toString().trim().contains(needed)) & (statements.get(i).toString().trim().length() == needed.length())) {
        System.out.println("HEREEEEEEEEEEEEEEEEEEEEEEEEEE");
    }
}
System.out.println(“名称:+m.getName());
BlockStmt bs=m.getBody();
List语句=bs.getStmts();
for(int i=0;i

某些字符串仍然包含空格,您必须指定字符串的结果。(字符串是不可变的)

正如@home提到的:

if(name.equals("joe")){
        String newName = name.trim();
        System.out.println(newName);
}
应该有用

编辑:我猜您希望在条件之前使用修剪。我的错误

String newName = name.trim();

if(newName.equals("joe")){
        System.out.println(newName);
}

你错了。
String.trim()

然而,我怀疑你真正的问题是你不知道这到底意味着什么。Java字符串是不可变的,因此
trim()
显然不会修改目标
String
对象。相反,它返回一个新的
字符串
实例,其中删除了空格。因此,您需要按如下方式使用它:

    String trimmed = someString.trim();

不显示包含
trim
的代码。请记住,此方法返回一个新的字符串实例,您需要类似于
name=name.trim()
的内容。它删除了前导空格和尾随空格:语句中没有修剪。请修改你的代码。我想他是说,如果他对他发布的代码调用trim。这是代码的一部分,当我得到源代码时,我将在另一个方法中使用trimcontents@ictStudent:如果您对
trim
有问题,则必须显示该部分代码,如果
name
有前导空格,那么
equals()
方法肯定会返回false。
    String trimmed = someString.trim();