检查以查看与我的int值等效的char

时间:2018-09-02 23:57:47

标签: c# char int

好的,我可能没有尽我所能解释它,但是我是一个初学者,我想编写一段实现此目的的代码: 您有一个字符串,需要找到其中的每个元音,并将每个元音在字符串中的位置乘以其在字母表中的位置,然后将所有总和相加 示例:steve:具有2个元音,第一个e的位置是3,并且在字母表中的位置是5。第二个e的位置在字母表中并且字符串是5 所以总和是5 * 3 + 5 * 5 = 40 这就是我所做的。 idk现在该怎么办或如何处理

 var vowels = new char[] {'a', 'e', 'i', 'o', 'u', 'y', 'A','E','I', 'O', 'U','Y'};
        var chars = new List<char>();
        List<int> indexes = new List<int>();

        Console.WriteLine("Write something : ");
        var input =  Console.ReadLine();

        int index;
        foreach (var vowel in vowels)
        {
            if (input.Contains(vowel))
            {
                index = input.IndexOf(vowel);
                indexes.Add(index + 1);
                chars.Add(vowel);
            }

        }

3 个答案:

答案 0 :(得分:0)

考虑这种方法:

static_pointer_cast

using System; using System.Linq; using System.Collections.Generic; namespace Whatever { class Program { static void Main(string[] args) { var vowels = new Dictionary<string, int>(5, StringComparer.OrdinalIgnoreCase) { { "a", 1 }, { "e", 5 }, { "i", 9 }, { "o", 15 }, { "u", 21 } }; Console.WriteLine("Write something : "); var input = Console.ReadLine(); var sum = input.Select((value, index) => new { value, index }) .Sum(x => { vowels.TryGetValue(x.value.ToString(), out var multiplier); return (x.index + 1) * multiplier; }); Console.ReadLine(); } } } 将原始字符串投影为带有Select及其索引的匿名类型。

char检查字符串是否为元音-并将其乘以位置(Sum)乘以字母表中的位置(来自index + 1)。

vowels不区分大小写,因此将“ A”和“ a”视为相同。

如果编译器抱怨vowels,请使用:

out var

相反。

答案 1 :(得分:0)

我在这里找到了答案

for (int i = 0; i < indexes.Count; i++)
        {
            sumofone += indexes[i] * (char.ToUpper(chars[i]) - 64);
        }

答案 2 :(得分:-1)

您可以执行此操作(参考来自here):

    var vowels = new char[] { 'a', 'e', 'i', 'o', 'u' };

    Console.WriteLine("Write something : ");
    var input = Console.ReadLine().ToLower();

    int total = 0;
    for (int temp = 1; temp <= input.Length; temp++)
    {
        if (vowels.Contains(input[temp - 1]))
        {
            total += temp * (char.ToUpper(input[temp -1]) - 64);
        }
     }

     Console.WriteLine("The length is " + total);