Mam następujący kod:

Console.Writeline("[Server] Message of client received");
for (int i = 0; i < totalBytes; i++)
{
    aChar = Convert.ToChar(incomingDataBuffer[i]);
    Console.Write(aChar);
}

Gdzie int totalBytes = aSocket.Receive(incomingDataBuffer);

Oprócz drukowania komunikatu takiego jak wyżej, muszę iterować przez wiadomość i wydrukować go ponownie, ale usuń spółgłoski. Więc "cześć tam" wróciłby "eoee".

Jeśli ktoś może dać przykład, byłby świetny. Nie znam C #, ale teraz uczę się Java.

c#
1
user6217340 16 luty 2017, 19:59

2 odpowiedzi

Najlepsza odpowiedź

Dodaj samogłoski do łańcucha i wydrukuj je później. Coś jak:

Console.Writeline("[Server] Message of client received");
string vowels = string.Empty; // start with an empty string
for (int i = 0; i < totalBytes; i++)
{
   aChar = Convert.ToChar(incomingDataBuffer[i]);
   Console.Write(aChar);
   // if it's a vowel add it to the "vowels" string
   if("aeiouAEIOU".Contains(aChar)) vowels += aChar;
}
Console.Write(vowels); // print it out

PS: Należy pamiętać, że "samogłoski" może się różnić w zależności od twojego języka ... Musisz zdefiniować, co jest samogłoska dla Ciebie (w wielu przypadkach y byłaby samogłoską w języku angielskim, na przykład lub akcentowanym literami , Lubię é lub ü). Uprościłem go w przypadku a-e-i-o-u, ale może być nieprawidłowy.

1
Jcl 16 luty 2017, 17:31

Oto szybki przykład, który pokazuje, jak iterować sznurek i sprawdzić samogłoski.

// The input.
// Your question is a little unclear and I couldn't understand how you get this string...
var message = "[Server] Message of         client received";

// Iterate over each character
for (int i = 0; i < message.Length; i++)
{
    // Check if character is a vowel and output if it is
    if ("aeiouAEIOU".IndexOf(message[i]) >= 0)
        Console.Write(message[i]);
}

Wejście:

[Serwer] Wiadomość otrzymanego klienta

Wynik:

eeeaeoieeeie.

1
Equalsk 16 luty 2017, 17:07