我尝试了一个characteriterator,switch语句可以很好地工作,只要我尝试在case中添加if语句,因为它什么也不显示。你能告诉我哪里错了吗?
StringBuilder sb = new StringBuilder(input);
CharacterIterator it= new StringCharacterIterator(input);{
for(char ch = it.first(); ch!= CharacterIterator.DONE; ch = it.next()) {
switch(ch) {
case 'E':
sb.append("S");
break;
case 'n':
sb.append("O");
break;
case 'g':
sb.append("L");
break;
case 'a':
sb.append(".");
break;
case 'i':
if(it.previous() == ' ') {
sb.append("ai");
break;
}
break;
case ' ':
sb.append(" ");
break;
} } }
这是我的密码。“engine”的输出应该是“solai”,我尝试检查字符“i”是在单词的开头还是其他地方。因此,如果它在开始时,我的输出将用“ai”替换“i”,如果不是,则应删除它。
1条答案
按热度按时间ymzxtsji1#
您需要在if语句中添加it.next(),然后for循环将转到下一个字符!感谢@vgr