Java 用StringBuilder替换字符串?
如何添加passStringBuilder()方法以创建与passStringBuilder()工作相同的新方法?我需要使用StringBuilder对象而不是字符串对象。问候Java 用StringBuilder替换字符串?,java,string,stringbuilder,Java,String,Stringbuilder,如何添加passStringBuilder()方法以创建与passStringBuilder()工作相同的新方法?我需要使用StringBuilder对象而不是字符串对象。问候 import intertech.MyDate; public class PassByExperiment { public static void main(String[] args) { MyDate date = new MyDate(1, 20, 2008); Sy
import intertech.MyDate;
public class PassByExperiment {
public static void main(String[] args) {
MyDate date = new MyDate(1, 20, 2008);
System.out.println("Before passing an object " + date);
passObject(date);
System.out.println("After passing an object " + date);
System.out.println("Before passing a primitive " +
date.year);
passPrimitive(date.year);
System.out.println("After passing a primitive " +
date.year);
String x = date.toString();
System.out.println("Before passing a String " + x);
passString(x);
System.out.println("After passing a String " + x);
}
public static void passObject(MyDate d) {
d.year = 2009;
}
public static void passPrimitive(int i) {
i = 2010;
}
public static void passString(String s)
{
int yearSlash = s.lastIndexOf('/');
s = s.substring(0, yearSlash + 1);
s += "2012";
System.out.println("New date string: " + s);
}
}
这就是我所尝试的:
public static void passStringBuilder(StringBuilder sb) {
int yearSlashSB = sb.lastIndexOf('/');
sb = sb.substring(0, yearSlashSB + 1);
sb.append("2012");
System.out.println("New date string: " + sb);
}
是可以作为任何其他对象传递的类:
public static void passStringBuilder(StringBuilder sb) {
int yearSlash = sb.lastIndexOf("/");
sb.delete(yearSlash + 1, sb.length());
sb,append("2012");
System.out.println("New date string: " + sb.toString());
}
StringBuilder#substring
返回一个String
,该字符串是一个子字符串,保持sb
不变。您需要删除某些字符
基本上,StringBuilder
保存字符并允许您轻松地操作它们。稍后,它允许您从中提取String
。您可以使用substring
或toString
由于Java 8,使用它进行连接是没有意义的,因为Java会自动将
String+String
更改为StringBuilder
。我建议,这种要求在本质上不是纯学术性的
public static void passStringBuilder(StringBuilder sb) {
passString(sb.toString());
}
首先正确设置代码格式检查JavaDoc中的
StringBuilder
。你可以使用名为lastIndexOf
、delete
和append
的方法。我试过了,但如果有人给我举个例子,没有什么是完美的。。。顺便说一句,这是我的第一篇文章,很抱歉第一个格式代码。有很多例子,你只需要搜索它们。“我试过了,但什么都没做”是不太可能的。张贴您尝试过的内容。@Tom(附件中有)这对理解传递机制有何帮助?Op询问如何将对象传递给方法以执行相同的功能。这是对需求最清晰的表述,除非是一个学术问题,即我如何使用StringBuilder。伙计,你是最好的,谢谢你花时间回答我。