我需要访问java源文件,我使用String的方法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");
}
}
某些字符串仍然预先包含空格
答案 0 :(得分:5)
你错了。 String.trim()
方法 完全删除了前导和尾随白色。
但是,我怀疑你真正的问题是你不知道这到底意味着什么。 Java字符串是不可变的,因此trim()
显然不会修改目标String
对象。相反,它返回一个删除了空格的新String
实例。所以你需要按如下方式使用它:
String trimmed = someString.trim();
答案 1 :(得分:4)
您必须分配字符串的结果。 (字符串objects是不可变的)。
name=name.trim();
if(name.equals("joe")){
System.out.println(name);
}
答案 2 :(得分:2)
正如@home所说:
if(name.equals("joe")){
String newName = name.trim();
System.out.println(newName);
}
应该工作
编辑:我猜你想在条件之前使用trim。我的错误。
String newName = name.trim();
if(newName.equals("joe")){
System.out.println(newName);
}