这是课堂作业。她让我们分两部分使用数组和数组列表。基本上她向我们展示了如何使用arraylist比阵列更容易。
我在使阵列部件工作时遇到了很多麻烦。
使用main方法创建一个名为CustomerLister1的类,该方法实例化一个名为customerName的String对象数组。该数组应该有六个String对象的空间。使用初始化列表将以下名称放入数组中:
编写增强的for循环以显示名称数组。最后一个数组元素显示什么?为什么这么值?
将字符串“Meg”和“Brian”分别添加到索引3和4中,以便该数组包含以下元素:
编写增强的for循环以显示名称数组。
编写第二个传统的for循环,检查字符串“Meg”的每个元素,如果在数组中找到,则删除它,移动剩余的元素,并显示名称数组。是否从阵列中正确删除了“Meg”的实例?
这是我的代码
public class CustomerLister1
{
public static void main(String[] args)
{
String[] customerName = new String[7];
customerName[0] = "Chris";
customerName[1] = "Lois";
customerName[2] = "Meg";
customerName[3] = "Peter";
customerName[4] = "Stewie";
for (int i = customerName.length-1;i > 3; i--)
{
customerName[i] = customerName[i - 2];
}
customerName[3] = "Meg";
customerName[4] = "Brian";
for (int m = 0; m <= customerName.length-1; m++)
{
if(customerName[m].equals("Meg"))
{
for(int j = m;j < customerName.length;j++)
{
if(j < customerName.length-2) {
customerName[j]= customerName[j+1];
} else {
customerName[j]="";
}
}
m--;
}
for (String element : customerName)
{
System.out.println(element);
}
}
}
}
输出错误虽然它删除了两个megs然后添加brian peter然后两个空行然后stewie。我需要删除空行并连续打印输出。
答案 0 :(得分:0)
这是一个解决方案。它使用一个额外的计数器来知道何时应该将""
放在数组中而不是移动下一个元素。
int customerSize = 7;
for (int m = 0; m <= customerName.length-1; m++)
{
if(customerName[m].equals("Meg"))
{
customerSize--;
for(int j = m;j < customerName.length;j++)
{
if(j >= customerSize)
customerName[j] = "";
else
customerName[j] = customerName[j+1];
}
m--;
for (String element : customerName)
{
if(! element.equals(""))
System.out.println(element);
}
System.out.println();
}
}
输出:
Chris
Lois
Meg
Brian
Peter
Stewie
Chris
Lois
Brian
Peter
Stewie