【发布时间】:2018-11-07 00:36:40
【问题描述】:
首先,如果代码看起来很乱,很抱歉。 我必须在 Java 上创建一个待办事项列表,用户可以在其中添加和删除家务,而无需使用正则表达式。我只能使用 String 类中的方法。 输入的每个杂务都应以“\n”结尾:
list = list + addedChore + "\n"
如果用户想删除第一个家务,例如:
endofChore1 = list.indexOf("\n", 0);
chore1 = list.substring(0, endofChore1);
chore1 = "";
我试图做的是获取第一个 \n 的索引并使其成为从索引 0 开始到第一个 \n 的索引的子字符串,最后用空字符串替换该子字符串,这样它就删除了清单上的家务。但是,它不起作用。我能做些什么来解决这个问题?谢谢。
编辑: 这是我写的删除任何给定的家务。我看不出有什么问题。
int choreToDelete; // number associated with chore user wants to delete
int begin = 0;
int i = 0;
int end;
String stringToDelete;
if (choreToDelete >= 1 && choreToDelete <= numberOfChores){
while (i < choreToDelete - 1) {
end = list.indexOf("\n", begin);
begin = end;
i = i + 1;
}
}
stringToDelete = list.indexOf("\n", begin);
list = list.substring(stringToDelete);
【问题讨论】:
-
其余代码在哪里?另外,请注意您提取 列表的一部分,使列表与之前完全一样。然后您将提取该部分的变量分配给一个新值,因此您现在 a) 未触及
list并且 b) 将chore1 = list....指令设为 noop。 -
@babyprog 字符串是不可变的