Java 为什么在使用trim()时不删除前导空格?
我需要访问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); 但是,
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();