我有这个功能:
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
但是返回=> cadena de texto
为什么我的函数没有返回正确的值?正如您所看到的,对象sb保持正确的值,但在主类中它不正确.
您忽略了方法返回的值.你应该使用它:
cadena = ob.eliminarRetornoCarro(cadena).toString();
虽然eliminarRetornoCarro()
返回a String
而不是StringBuilder
(即return sb.toString();
代替return sb;
并改变返回类型)会更好.