लूप शब्द की पूरी अवधि के लिए आउटपुट को दोहराता रहता है।

मैंने कंसोल शुरू करने की कोशिश की। लूप के अंदर और बाहर लिखें। मैंने इंक्रीमेंटर और सबस्ट्रिंग के मूल्यों को बदलने की भी कोशिश की।

 Console.WriteLine("Enter a word.");
            string userWord = Console.ReadLine();
            Console.WriteLine();
            Console.WriteLine("You wrote {0}", userWord);
            Console.WriteLine();

            userWord.ToLower();
            char[] wordArray = userWord.ToArray();


            for (int i = 0; i <= wordArray.Length; i++)
            {
                string theLetter = userWord.Substring(i, 1);

                //theLetter = theLetter.ToLower();
                string rebuilt = new string(wordArray);

                if (wordArray[i] == 'a' || wordArray[i] == 'e' || wordArray[i] == 'i' || wordArray[i] == 'o' || wordArray[i] == 'u')
            {
                    wordArray[i] = '$';

                }


                Console.WriteLine("Your word is now: {0}", rebuilt);
                Console.WriteLine("The total number of letters in your word is {0}", userWord.Length);
            }
            Console.ReadLine();

कंसोल.राइट को इसका आउटपुट केवल एक बार प्रदर्शित करना चाहिए।

0
haberjin 18 फरवरी 2019, 22:55

2 जवाब

सबसे बढ़िया उत्तर

आपको अपने कंसोल को ले जाना होगा। लूप के बाहर राइटलाइन। साथ ही, ArguementOutOfRangeException से बचने के लिए आपकी लूप कंडीशन को बदलने की जरूरत है।

for (int i = 0; i < wordArray.Length; i++)

आपके कोड में एक और त्रुटि है। आप userWord को लोअरकेस में कनवर्ट कर रहे हैं, लेकिन आप परिणाम संग्रहीत नहीं कर रहे हैं।

userWord.ToLower();

उपरोक्त रेखा को प्रतिस्थापित करने की आवश्यकता है

userWord = userWord.ToLower();

पूर्ण कोड

Console.WriteLine("Enter a word.");
string userWord = Console.ReadLine();
Console.WriteLine();
Console.WriteLine("You wrote {0}", userWord);
Console.WriteLine();

userWord = userWord.ToLower();
char[] wordArray = userWord.ToArray();

for (int i = 0; i < wordArray.Length; i++)
{
        if (wordArray[i] == 'a' || wordArray[i] == 'e' || wordArray[i] == 'i' || wordArray[i] == 'o' || wordArray[i] == 'u')
        {
            wordArray[i] = '$';

        }
 }

var rebuildWord = new string(wordArray);
Console.WriteLine("Your word is now: {0}", rebuildWord);
Console.WriteLine("The total number of letters in your word is {0}", userWord.Length);

केवल आपकी जानकारी के लिए, आप इसे Regex का उपयोग करके भी प्राप्त कर सकते हैं।

Console.WriteLine("Enter a word.");
string userWord = Console.ReadLine();
Console.WriteLine();
Console.WriteLine("You wrote {0}", userWord);
Console.WriteLine();


var rebuildWord = Regex.Replace(userWord,@"[aeiouAEIOU]","$");


Console.WriteLine("Your word is now: {0}", rebuildWord);
Console.WriteLine("The total number of letters in your word is {0}", userWord.Length);
1
Anu Viswan 19 फरवरी 2019, 08:30

यह बस सरल है। प्रिंट करने से पहले आपको जांचना चाहिए कि लूप अंतिम पुनरावृत्ति में है या नहीं।

 Console.WriteLine("Enter a word.");
        string userWord = Console.ReadLine();
        Console.WriteLine();
        Console.WriteLine("You wrote {0}", userWord);
        Console.WriteLine();

        userWord.ToLower();
        char[] wordArray = userWord.ToArray();


        for (int i = 0; i <= wordArray.Length; i++)
        {
            string theLetter = userWord.Substring(i, 1);

            //theLetter = theLetter.ToLower();
            string rebuilt = new string(wordArray);

            if (wordArray[i] == 'a' || wordArray[i] == 'e' || wordArray[i] == 'i' || wordArray[i] == 'o' || wordArray[i] == 'u')
            {
                wordArray[i] = '$';

            }
            if(i==userWord.Length)
            {
            Console.WriteLine("Your word is now: {0}", rebuilt);
            Console.WriteLine("The total number of letters in your word is {0}", userWord.Length);
            }
        }
        Console.ReadLine();      
1
avinash 19 फरवरी 2019, 08:36