Search code examples
c#consoleconsole.readline

How to only allow single words to be input using console.readline() in c#?


I have the following code.

Console.Clear();
string encodedMessage = "";

Console.WriteLine("Enter a word to encode");
char[] stringtoencode = Console.ReadLine().ToCharArray();

for (int i = 1; i < stringtoencode.Length; i++)
{
    string currentCharAsString = stringtoencode[i].ToString();
    encodedMessage += currentCharAsString;
}

encodedMessage = encodedMessage + stringtoencode[0].ToString() + "ay";
Console.WriteLine("Your string encodes to backslang as          " +encodedMessage);

It takes a string input from the user and encodes it into a form of backslang (which is a phonetic encryption, which simply moves the first letter of the word to the end of the word and adds 'ay' to the end of the word)

I am using Console.ReadLine() to retrieve the input string. How can I modify the above code so that it only allows the user to enter a single word, following the prompt 'enter a word to encode'?


Solution

  • This will ask the user to input a (new) word if the line read contains a space.

    string word;
    do
    {
        Console.WriteLine("Enter a word to encode");
        word = Console.ReadLine();
    } while (word.Contains(' '));
    var encodedMessage = word.Substring(1) + word[0]  + "ay";
    Console.WriteLine("Your string encodes to backslang as " + encodedMessage);