不确定我应该使用 StringBuilder 做什么
Not sure what im supposed to do using StringBuilder
我被要求在新的 class 中为下面列出的方法提供我自己的实现。我不确定我应该如何处理它们。有任何想法吗?我最近刚从使用 C++ 切换到 java。两者之间的大部分区域至少有些相似,但我在字符串和方法方面遇到困难。
好的,这一切都说得通,但我应该用这些方法做什么?喜欢第一个 "public MystringBuilder1(String s)"。那只是将变量 "s" 声明为字符串类型吗?我该如何实施?如果你把 "public MystringBuilder1(String s)" 放在 class 中,它只会返回一个错误。这本书从未解释过任何这些方法,然后说 "here do this" 所以我完全迷路了。也许我只是错过了重点?
public MyStringBuilder1(String s);
public MyStringBuilder1 append(MyStringBuilder1 s);
public MyStringBuilder1 append(int i);
public String toString();
Java API 中的 StringBuilder class 的目的是比原生字符串 class 更有效地构造字符串。如果您在循环中处理大量数据并将其存储在字符串中,这可能很有用。 Java 的原生字符串 class 是不可变的,这意味着当连接两个字符串时,必须复制它们以创建一个新字符串。不可变字符串有一些优势,但速度不是其中之一。
这个作业可能要求你自己实现 class。找到一种数据结构,既可以让您有效地将新字符串附加到 class,也可以在调用 toString 方法时将其转换为字符串,然后围绕该数据结构实现所需的方法。
StringBuilder class 当您想要连接多个字符串并发生多个赋值时,StringBuilder class 真的很有帮助。(例如:在一个循环中)
比如说你有这个:
string firstString = "first" + "second";
此语句将创建一个大小等于 ("first".length()+"second".length()) 的新字符串,并将这两个字符串复制到新字符串中。
StringBuilder class 的优势来自于您正在做的事情,例如:
StringBuilder strBuilder = new StringBuilder();
for(string str:strings){
strBuilder.append(str);
}
strBuilder.toString();
而不是:
String wholeString = "";
for(string str:strings){
wholeString += str;
}
这是非常低效的,因为对于循环的每次迭代,每次连接都会创建一个新字符串。
StringBuilder class 将跟踪连接中的每个字符串,并且不会在您附加到它时创建新字符串。因此,您可以通过使用 append
方法 10 次来连接 10 个字符串,并且当您调用 toString
方法时只会创建 1 个字符串。
我被要求在新的 class 中为下面列出的方法提供我自己的实现。我不确定我应该如何处理它们。有任何想法吗?我最近刚从使用 C++ 切换到 java。两者之间的大部分区域至少有些相似,但我在字符串和方法方面遇到困难。
好的,这一切都说得通,但我应该用这些方法做什么?喜欢第一个 "public MystringBuilder1(String s)"。那只是将变量 "s" 声明为字符串类型吗?我该如何实施?如果你把 "public MystringBuilder1(String s)" 放在 class 中,它只会返回一个错误。这本书从未解释过任何这些方法,然后说 "here do this" 所以我完全迷路了。也许我只是错过了重点?
public MyStringBuilder1(String s);
public MyStringBuilder1 append(MyStringBuilder1 s);
public MyStringBuilder1 append(int i);
public String toString();
Java API 中的 StringBuilder class 的目的是比原生字符串 class 更有效地构造字符串。如果您在循环中处理大量数据并将其存储在字符串中,这可能很有用。 Java 的原生字符串 class 是不可变的,这意味着当连接两个字符串时,必须复制它们以创建一个新字符串。不可变字符串有一些优势,但速度不是其中之一。
这个作业可能要求你自己实现 class。找到一种数据结构,既可以让您有效地将新字符串附加到 class,也可以在调用 toString 方法时将其转换为字符串,然后围绕该数据结构实现所需的方法。
StringBuilder class 当您想要连接多个字符串并发生多个赋值时,StringBuilder class 真的很有帮助。(例如:在一个循环中)
比如说你有这个:
string firstString = "first" + "second";
此语句将创建一个大小等于 ("first".length()+"second".length()) 的新字符串,并将这两个字符串复制到新字符串中。
StringBuilder class 的优势来自于您正在做的事情,例如:
StringBuilder strBuilder = new StringBuilder();
for(string str:strings){
strBuilder.append(str);
}
strBuilder.toString();
而不是:
String wholeString = "";
for(string str:strings){
wholeString += str;
}
这是非常低效的,因为对于循环的每次迭代,每次连接都会创建一个新字符串。
StringBuilder class 将跟踪连接中的每个字符串,并且不会在您附加到它时创建新字符串。因此,您可以通过使用 append
方法 10 次来连接 10 个字符串,并且当您调用 toString
方法时只会创建 1 个字符串。