Java 用于删除阵列数据的代码无效
所以我按照我演讲中给出的代码来删除数组中的数据…但是当我显示数据时…看起来数据没有被删除…下面是我的删除函数的方法Java 用于删除阵列数据的代码无效,java,arrays,function,Java,Arrays,Function,所以我按照我演讲中给出的代码来删除数组中的数据…但是当我显示数据时…看起来数据没有被删除…下面是我的删除函数的方法 public static void delete() { char proceed; do{ int j; boolean delete=false; int arraylength=date.length; System.out.print("Enter the date that you want to delete: "); Strin
public static void delete()
{
char proceed;
do{
int j;
boolean delete=false;
int arraylength=date.length;
System.out.print("Enter the date that you want to delete: ");
String deleteDate=input.next();
for(index=0;index<arraylength;index++)
{
if(date[index].equals(deleteDate))
{
for(j=index;j<arraylength-1;j++)
date[j]=date[j+1];
delete=true;
break;
}//if
}//for
if (delete==false)
{
System.out.println("The date search has not been reserved yet");
}
System.out.print("Delete another data?(Y/N): ");
proceed=input.next().charAt(0);
}while(proceed=='Y');
publicstaticvoiddelete()
{
继续进行;
做{
int j;
布尔删除=假;
int arraylength=date.length;
System.out.print(“输入要删除的日期:”);
字符串deleteDate=input.next();
对于(index=0;index如果一位讲师写了这篇文章,那么他是在做错误的工作
if (delete=false)
是错误的,即将false赋值给delete
,如果它们相等,则不进行测试(=
)
int j;
当它可以在(int j=index;…)的循环中使用时,没有理由在这里定义它。
arrayLength
可以从date.length
获取,那么为什么要在它可能出错时传递它呢
for(index=0;index<arraylength;index++)
if(date[index].equals(deleteDate))
for(j=index;j<arraylength-1;j++)
=
比较对象相等和非值相等,即检查两个对象是否相同,而不是两个对象(String
s在本例中)是否具有相同的值。在本例中,它可以工作,但它是错误的,比较String
应使用
继续。比较('Y')
或者为了防止多起案件,
继续。toLowerCase().compareTo('y')
如果一位讲师写了这篇文章,那么他是在做错误的工作
if (delete=false)
是错误的,即将false赋值给delete
,如果它们相等,则不进行测试(=
)
int j;
当它可以在(int j=index;…)的循环中使用时,没有理由在这里定义它。
arrayLength
可以从date.length
获取,那么为什么要在它可能出错时传递它呢
for(index=0;index<arraylength;index++)
if(date[index].equals(deleteDate))
for(j=index;j<arraylength-1;j++)
=
比较对象相等和非值相等,即检查两个对象是否相同,而不是两个对象(String
s在本例中)是否具有相同的值。在本例中,它可以工作,但它是错误的,比较String
应使用
继续。比较('Y')
或者为了防止多起案件,
继续。toLowerCase().compareTo('y')
你能把你的代码合理地缩进吗?“delete=false”应该是“delete==false”或“!delete”…并且停止使用容易出错的if(delete=false)
(比如在你的例子中)。开始使用if(!delete)
或者像尤达说的if(false==delete)
。对于初学者,我认为您需要它来读取if(delete==false)
。顺便说一句,您的循环似乎不会影响/删除数组中的最后一个元素,因此每次将元素向左移动时,您将在最后两个索引中得到该元素的副本,然后在最后三个、四个索引中,依此类推。您可以合理地缩进代码吗?“delete=false”应该是“delete==false”或“!delete”…并停止使用容易出错的if(delete=false)
(比如在你的例子中)。开始使用if(!delete)
或像尤达说的if(false==delete)
。对于初学者,我认为你需要它来阅读if(delete==false)
。顺便说一句,循环似乎不会影响/删除数组中的最后一个元素,因此每次向左移动元素时,最后两个索引中都会出现该元素的副本,然后是最后三个、四个,依此类推。很遗憾,对于Javascript,这就像一个带有indexOf和copyWithin()的1行程序:)所以当你说我把所有日期都复制回去的时候…那么我应该怎么做才能真正删除输入的日期呢?我对它进行了一点编辑…我声明索引是全局的,因为它也用于其他方法是的,移动是从一个地方复制到另一个地方并删除原始的。不删除原始的是复制,而不是移动index
不应该是全局的,它应该是特定于正在执行的任何操作的。要么传入它的值,要么在循环中设置它。我理解…所以删除数组的代码似乎是错误的,我猜…如何修复它?你能帮我吗?很遗憾,对于Javascript来说,这就像一个带有indexOf和copyWithin()的1行程序:)所以当你说我把所有日期都复制回来的时候…那么我应该怎么做才能真正删除输入的日期呢?我对它进行了一点编辑…并且我声明索引是全局的,因为它也用于其他方法是的,移动是从一个地方复制到另一个地方并删除原件。不删除原件就是复制,而不是移动。T索引不应该是全局的,它应该是特定于正在执行的任何操作的。要么传入它的值,要么在循环中设置它。我理解…所以删除数组的代码似乎是错误的,我猜…如何修复它?你能帮我吗?