Jako programista inny niż .NET szukam równoważnika .net starej funkcji vb left(string, length)
. Był leniwy, ponieważ działał na dowolny ciąg znaków. Zgodnie z oczekiwaniami, left("foobar", 3) = "foo"
, podczas gdy, najkorzystniej, left("f", 3) = "f"
.. Odpowiednik .Net starej funkcji lewej vb (ciąg, długość)?
W .net string.Substring(index, length)
zgłasza wyjątki dla wszystkiego poza zakresem. W Javie zawsze miałem pod ręką Apache-Commons lang.StringUtils. W Google nie bardzo daleko szukam funkcji ciągów.
Edit:
@Noldorin - Wow, dziękuję za rozszerzeń vb.net! Moje pierwsze spotkanie, chociaż zajęło mi kilka sekund, aby zrobić to samo w C#:
public static class Utils
{
public static string Left(this string str, int length)
{
return str.Substring(0, Math.Min(length, str.Length));
}
}
Uwaga statyczne klasy i metody, a także kluczowe this
. Tak, są tak proste, aby wywołać je jako "foobar".Left(3)
. Zobacz także c# extensions on msdn.
Cieszę się, że Cię do nich zapoznałem. :) Są bardzo przydatnymi funkcjami zarówno VB.NET, jak i C# (o ile wiesz, jak z nich korzystać), a znajdziesz je przydatne przez cały czas. Przy okazji, nie jestem pewien, czy zdajesz sobie sprawę, ale funkcja Math.Min jest częścią BCL, więc równie dobrze możesz użyć go również w języku C#. – Noldorin
@Nolderin - Bardzo zadbane, zredagowane w celu odzwierciedlenia komentarza Math.Min. Dziękuję Ci! – Josh
Jako przypis, zwróć nowy ciąg znaków (str.Take (długość) .ToArray()); działa również. Wyobrażam sobie, że używanie podciągu jest prawdopodobnie szybsze. – Sean