【发布时间】:2014-07-30 06:38:28
【问题描述】:
我一直在寻找一种方法来检查字符串中的数组元素,如果它包含其中一个元素以返回它的 indexOf,但我很难找到一种方法来做到这一点。我的大部分搜索最终都向我展示了如何在数组中找到 indexOf 元素或类似的东西。
作为背景知识,我正在尝试创建一个程序,该程序从用户输入中获取一个字符串,将段落中的单词拆分为一个数组,对它们执行某些检查并相应地更改它们。
例如,如果当前单词以辅音开头,它会找到第一个元音并将其前面的所有字母移动到单词的末尾。这是我尝试过的,但它打印的索引为 14,所以很明显有问题:
char[] vowelsList = new char[] { 'A', 'a', 'E', 'e', 'I', 'i', 'O', 'o', 'U', 'u' };
foreach (char vowel in vowelsList)
{
if (currentWord.Contains(vowel))
{
int index = currentWord.IndexOf(vowel);
System.Diagnostics.Debug.Write(index);
}
}
currentWord 是来自当前正在检查的用户输入的字符串中的单词。
对于尝试不同方法或关键字的任何建议表示赞赏。
编辑
抱歉,代码实际上很好,它返回 1 和 4,因为它总是接收输入 Hello 并且我误解了正在发生的事情,有时我有点白痴。我想我的问题是如何让这段代码只找到第一个元音的索引,但是海报已经说明了如何做到这一点,谢谢大家的帮助和建议,其中大部分我已经实现了。
【问题讨论】:
-
总而言之-您只需要从输入字符串中的给定字符串数组(在本例中为
vowelsList)中获取元素的第一次出现(索引)吗?还是数组中每个字符串的每个第一个索引? -
这个例子中
currentWord的值是多少? -
@pwas 我只需要从输入字符串中的给定数组中获取第一次出现的元素。
-
打印出 14 的索引,很明显有些地方出了问题 - 在这种情况下,
currentWord的值是多少,对于哪个vowel打印出 14?我看不出这段代码有什么问题。 -
@fost "第一次出现给定数组中的元素" 你的意思是任何元素吗?