如何通过调用 args 构造函数来创建数组?
StringBuilder[] sb=new StringBuilder[100];
但是如果我检查 sb[0] 它是空的。我希望 sb[0] 到 sb[99] 用“”初始化。
以下导致错误:
StringBuilder[] sb=new StringBuilder[100]("");
编辑: 或者我必须这样做:
for(StringBuilder it:sb)
{
it=new StringBuilder("");
}
如何通过调用 args 构造函数来创建数组?
StringBuilder[] sb=new StringBuilder[100];
但是如果我检查 sb[0] 它是空的。我希望 sb[0] 到 sb[99] 用“”初始化。
以下导致错误:
StringBuilder[] sb=new StringBuilder[100]("");
编辑: 或者我必须这样做:
for(StringBuilder it:sb)
{
it=new StringBuilder("");
}
您的所有代码将做的就是初始化一个为 100 个 StringBuilders 准备好的数组。它实际上不会填充它。
你可以这样做:
StringBuilder[] sb=new StringBuilder[100];
for (int i = 0; i < sb.length; i++) {
sb[i] = new StringBuilder("");
}
那应该为你做。
它将永远是null
。如果你想""
在那里,你必须手动初始化它。
相反,您可以通过一个方法访问数组,""
如果值为null
.
StringBuilder[] sb = new StringBuilder[100];
for(int i=0;i<100;i++) {
sb[i] = new StringBuilder("");
}
null
除非设置了任何数组中的所有值...您需要手动初始化每个值
StringBuilder[] sb=new StringBuilder[100];
for(int i=0; i<sb.length; i++) {
sb[i]=new StringBuilder();
}
或者...
StringBuilder[] sb=new StringBuilder[]{new StringBuilder(), new StringBuilder(), etc}
(我推荐第一种方法用于包含大量条目的数组)
Java 中引用传递的有趣应用。
请注意,以下将起作用 -
StringBuilder[] array = new StringBuilder[10];
for (int i= 0; i < 10; i++) {
array [i] = new StringBuilder("");
}
但以下将不起作用 -
StringBuilder[] array = new StringBuilder[10];
for (StringBuilder sb: array) {
sb = new StringBuilder("");
}
这是因为在第二种情况下,变量sb
被分配了对新 StringBuilder 的引用,而不是引用数组的元素。数组元素不会改变,因为sb
失去了对它们的引用。
任何数组中的所有值都是空的,除非它们被设置......您需要手动初始化每个值
StringBuilder[] sb=new StringBuilder[100];
for(int i=0; i<sb.length; i++) {
sb[i]=new StringBuilder();
}