【发布时间】:2018-04-20 12:37:43
【问题描述】:
所以我正在尝试为编码考试练习手写代码,其中一个示例问题是查找给定字符串中第一个元音的索引,如果没有,则返回 -1。
我尝试将其放入 Eclipse 并对其进行调试。我不明白为什么这不起作用。我不断得到 101 作为输出。最初我没有使用索引变量,我让 if 语句返回 word.charAt(i)。我尝试改变它,但它没有做任何事情。
(出于考试目的,他们希望我们只使用小写元音)
另外,如果你必须写这个,写这个更简单的方法是什么?
public static int firstVowel(String word) {
for (int i = 0; i < word.length(); i++) {
int index;
if (word.charAt(i) == 'a' || word.charAt(i) == 'e' || word.charAt(i) == 'i' || word.charAt(i) == 'o'
|| word.charAt(i) == 'u') {
index = word.charAt(i);
return index;
}
}
return -1;
}
【问题讨论】:
-
String.indexOf 将使您的代码更具可读性。
-
我会把它放在我的 if 语句中吗?我想我以前没用过。
-
不,代码将缩小到(伪代码)
min( indexOf('a'), indexOf('e') ... )。然而,这样的min方法是没有预定义的(Math.min()只接受两个参数,这将导致括号的大量嵌套)。因此,您必须为单个字符保护-1,这很可能会导致代码更难以阅读。
标签: java string loops indexing