Odwołanie String (newbie)

0

Jestem świeżakiem jeśli chodzi o programowanie...
I nie mam pojęcia jak to wykonać, a mianowicie będę sprawdzał po kolei imię, nazwisko itd.
Ma być to na tej samej zasadzie sprawdzane, dlatego stwierdziłem, że fajnie by było napisać tylko raz kod i potem się do tego odwoływać a ta by zwracała już uporządkowaną wartość.

Napisałem coś takiego:
screenshot-20181116173555.png

Lecz zdaje sobie sprawę, że nie zwraca to do imie tylko jako "zmienna", jak to zrobić by return zwracal wartość do tej zmiennej imie?

1
imie= sprawdz_string(Console.ReadLine());
0

Ooo! O to mi chodziło... :D Dzięki wielkie! :)

0

sprawdzanie na zasadzie pozytywnej (akceptujemy litery języka polskiego i minus) jest lepsze niż negatywne (odrzucamy TYLKO cyfry) - AnyKtokolwiek 28 minut temu

Też racja, chciałem tak zrobić według ASCII, ale nie wiem czemu mi to nie dziala ^^ ktoś coś?

screenshot-20181116194256.png

1

Tu masz wersje akceptującą tylko litery i myślniki:

private static string sprawdz_string(string v) 
{  return v.Aggregate("", (x, y) => char.IsLetter(y) || y=='-'  ? x + y : x); }
0

Jezusku :D

Byłbyś w stanie to opisać jak to działa? (szybkiego ifa rozumiem, chodzi o samo aggregate)
Bo wygląda i działa super :)

1

Szukałem sposobu, by zapisać to jak najkrócej.

public static string funkcja1 (string text)
{
    return Regex.Replace(text, @"([^\D_]+)", "");
}
0

a zwykła pętla?

private static string sprawdz_string2(string v)
{
	var sb = new StringBuilder(); // służy do budowania / składania stringa, ale wydajniej niż przy użyciu operatora +
	
	foreach (var letter in v)
	{
		if (char.IsLetter(letter) || letter == '-')
		{
			sb.Append(letter);
		}
	}

	return sb.ToString();
}
1

Jeżeli zależy ci na szybkości i zwięzłym zapisie to jest najlepsza opcja.

public static string test (string text)
{
	return text.Aggregate(new StringBuilder(), 
		(result, _char) => (char.IsLetter(_char) ||  _char is '-') ? result.Append(_char) : result,
		(result) => result.ToString());
}
0

Dziękuję bardzo za podpowiedzi,
Do zamknięcia

1 użytkowników online, w tym zalogowanych: 0, gości: 1