代码不会忽略数字

时间:2018-03-31 17:28:07

标签: c#

我正在尝试编写一个简单的代码,但我尝试在if语句中执行for循环但最终反转了数字和句子。我不知道我错过了什么或者我做错了什么我评论了我正在努力让那部分工作的部分。

代码应该这样做: 一个FUNCTION,它接受一个String作为参数并返回该字符串的Pig Latin版本。该计划应该能够:

  1. 处理标点符号
  2. 忽略数字(即如果传入“500”,则传回“500”)
  3. 处理多个句子

  4. static void Main(string[] args)
    {
        Console.WriteLine("Enter the word or sentence to convert into Pig Latin");
        string sentence = Console.ReadLine();
        string pigLatin = PigLatin(sentence);
        Console.WriteLine(pigLatin);
    }
    
    static string PigLatin(string sentence)
    {
        string letter = sentence.ToLower();
        string firstLetter, restWord, vowels = "AEIOUaeio";
        //int numbers;
        int current;
        foreach (string word in sentence.Split())
        {
            firstLetter = sentence.Substring(0, 1);
            restWord = sentence.Substring(1, sentence.Length - 1);
            current = vowels.IndexOf(firstLetter);
            if (current == -1)
            {
                sentence = restWord + firstLetter + "ay";
    
            }
            //for (int numbers = 0; numbers ; numbers++)
            //{
            //   sentence += numbers;
            //}
    
        }
        return sentence;
    }
    

1 个答案:

答案 0 :(得分:0)

以下代码将消除string中的所有数字/仅获取string中的字母(字母):

 var letters = new String(sentence.Where(Char.IsLetter).ToArray());

但我知道你也需要这个号码,在这种情况下,这样做:

 var numbers = new String(sentence.Where(Char.IsDigit).ToArray())

所以,最后你可以对letters进行翻译并在最后使用numbers变量。

 var result = stringAfterTranslation + numbers.ToString();

希望有所帮助:)