[英]Java (Removing a 'keyword' from the alphabet)
所以我想从字母中删除modifiedKeyword(用作常量的PLAIN_ALPHA)
private String removeKeyword(String modifiedKeyword){
int wordLength = modifiedKeyword.length();
int letterPosition;
int alphabetPosition;
String modifiedAlphabet = "";
final String PLAIN_ALPHA = "bcdefghijklmnopqrstuvwxyz";
for (alphabetPosition=0; alphabetPosition<=26; letterPosition++){
boolean shouldBeDeleted = false;
char alphabetLetter = PLAIN_ALPHA.charAt(alphabetPosition);
for (letterPosition=0; letterPosition>wordLength; letterPosition++){
char keywordLetter = modifiedKeyword.charAt(letterPosition);
if (alphabetLetter == keywordLetter) { shouldBeDeleted = true;}
modifiedAlphabet += alphabetLetter;
}
}
return modifiedAlphabet;
}
由于某些原因,当我运行它时,它不会执行,但会一直保持加载状态(鼠标光标显示正在加载动画)。 你们能发现我必须错过的任何错误吗? 谢谢。
for (alphabetPosition=0; alphabetPosition<=26; letterPosition++){
您永远不会增加计数器变量alphabetPosition
因此您的代码将在无限循环中运行。
编辑:
还有一种使用String#replaceAll(,String,String)的简便方法
private String removeKeyword(String modifiedKeyword){
final String PLAIN_ALPHA = "bcdefghijklmnopqrstuvwxyz"; //try to extract this as a constant for cleaner code
String result = PLAIN_ALPHA.replaceAll(modifiedKeyword, "");
return result;
}
for (alphabetPosition=0; alphabetPosition<=26; letterPosition++){
您要增加的变量不是初始化的变量。 (实际上,您永远不会增加AlphabetPosition)。
for (letterPosition=0; letterPosition>wordLength; letterPosition++){
letterPosition可能不会比您的字长更好,对吗?
当这些事情发生时,您应该始终仔细检查循环,这很可能是一个无限循环。 根据您的情况, alphabetPosition
始终为0,永远不会达到27:
for (alphabetPosition=0; alphabetPosition<=26; letterPosition++){
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.