【发布时间】:2019-04-24 11:49:26
【问题描述】:
我在学校做一个 java 项目,我们遇到了以下问题:
rename – 更改现有工作表的名称
public int rename(String currentName, String newName)
rename传递了两个工作表名称。仅当currentName工作表名称在列表中而newName工作表名称不在时,才应执行重命名。否则rename什么都不做(即列表不受影响)。 如果currentName成功更改为newName,则该方法返回重命名的工作表的索引位置。否则返回-1。
这是我目前所拥有的
public int rename(String currentName, String newName) {
int i = 0;
for (i=0; i<SheetsNames.length; i++) {
if (SheetsNames[i].equals(currentName)) {
SheetsNames[i] = newName;
return i;
}
}
return -1;
}
我得到了重命名部分,但我无法让它不重命名为具有相同名称的东西
【问题讨论】:
-
是什么让你认为如果
currentName不在Array中,它仍然会做一些事情?您是否使用未包含的元素对其进行了测试并且它更改了元素?如果是这样,请edit您的帖子包含此场景 -
if (newName.equals(currentName) { return -1; }?在一个很小的“家庭作业案例”中,这并没有增加很多。 -
什么是
SheetsNames?据我所知,从语法亮点和普通变量以小写开头的事实来看,我假设您访问的是类型定义而不是变量。 -
“但我不能让它不将其重命名为具有相同名称的东西”您如何一方面执行正确的布尔评估,另一方面另一方面找不到如何执行 99% 相似的布尔评估?
-
SheetNames 是一个列表还是一个数组,你提到两者?