我有这个功能:
private StringBuilder eliminarRetornoCarro(String parametro) {
final StringBuilder sb = new StringBuilder(parametro);
final int number = 111;
for (int x = 0; x < sb.length(); x++) {
if (sb.codePointAt(x) == number) {
sb.setCharAt(x, ' ');
}
}
return sb;
}
这是我的主要课程:
fff ob= new fff();
String cadena="cadena de texto";
ob.eliminarRetornoCarro(cadena);
System.out.println(cadena);
为什么我的函数不会返回我在主类中修改过的字符,所以这将是一个好结果:
cadena de text
但返回=&gt; cadena de texto
为什么我的函数没有返回正确的值?正如您所看到的,对象sb保持正确的值,但在主类中它不正确。
答案 0 :(得分:7)
您忽略了方法返回的值。你应该使用它:
cadena = ob.eliminarRetornoCarro(cadena).toString();
如果eliminarRetornoCarro()
返回String
而不是StringBuilder
(即return sb.toString();
而不是return sb;
并更改返回类型,那会更好。< / p>