使用trim()时,为什么没有删除前导空格?

ict*_*991 -1 java string trim

我需要访问java源文件,我使用String的方法trim()来删除任何前导和尾随空格.但是代码是一些范围,例如:

if(name.equals("joe")){
   System.out.println(name);
}
Run Code Online (Sandbox Code Playgroud)

打印声明的空格不会被完全删除.有没有办法能够删除这些白色空间吗?

谢谢

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

String n = statements.get(i).toString().trim();
            System.out.println(n);
Run Code Online (Sandbox Code Playgroud)

但输出仍然如下:

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");
    }
}
Run Code Online (Sandbox Code Playgroud)

一些字符串仍然预先包含空格

Ste*_*n C 5

你误会了.该String.trim()方法确实完全去除了前导和尾随的白色形状.

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

    String trimmed = someString.trim();
Run Code Online (Sandbox Code Playgroud)