.NET, эквивалентный из старого оставленного vb (строка, длина) функция?

Попробуйте это.

public static void main(String[] args) throws IOException {
    File directory = new File(".");

    File[] files = directory.listFiles();
    System.out.println("All files and directories:");
    displayFiles(files);

    String pattern =  "20190215/"+"taxonomy_[*].txt";
    System.out.println("\nFiles that match regular expression: " + pattern);
    FileFilter filter = new RegexFileFilter(pattern);
    files = directory.listFiles(filter);
    displayFiles(files);

}

public static void displayFiles(File[] files) {
    for (File file : files) {
        System.out.println(file.getName());
    }
}

65
задан Josh 9 May 2009 в 21:49
поделиться

5 ответов

Вот метод расширения, который выполнит эту работу.

<System.Runtime.CompilerServices.Extension()> _
Public Function Left(ByVal str As String, ByVal length As Integer) As String
    Return str.Substring(0, Math.Min(str.Length, length))
End Function

Это означает, что вы можете использовать его так же, как старую функцию VB Left (например, Left (" foobar ", 3) ) или используя новый синтаксис VB.NET, то есть

Dim foo = "f".Left(3) ' foo = "f"
Dim bar = "bar123".Left(3) ' bar = "bar"
52
ответ дан 24 November 2019 в 15:20
поделиться

Другой вариант одной строки будет примерно таким:

myString.Substring(0, Math.Min(length, myString.Length))

Где myString - это строка, с которой вы пытаетесь работать.

33
ответ дан 24 November 2019 в 15:20
поделиться

вы можете сделать свое собственное

private string left(string inString, int inInt)
{
    if (inInt > inString.Length)
        inInt = inString.Length;
    return inString.Substring(0, inInt);
}

редактирование: мое на C #, вам придется изменить его на vb

5
ответ дан 24 November 2019 в 15:20
поделиться

Добавьте ссылку на библиотеку Microsoft.VisualBasic, и вы сможете использовать Strings.Left , который точно тот же метод.

31
ответ дан 24 November 2019 в 15:20
поделиться

Вы можете обернуть вызов подстроки в новой функции, которая проверяет ее длину, как предложено в других ответах (правильный способ), или использует пространство имен Microsoft.VisualBasic и напрямую использует left (обычно считается неправильным способом!)

2
ответ дан 24 November 2019 в 15:20
поделиться