Попробуйте это.
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());
}
}
Вот метод расширения, который выполнит эту работу.
<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"
Другой вариант одной строки будет примерно таким:
myString.Substring(0, Math.Min(length, myString.Length))
Где myString - это строка, с которой вы пытаетесь работать.
вы можете сделать свое собственное
private string left(string inString, int inInt)
{
if (inInt > inString.Length)
inInt = inString.Length;
return inString.Substring(0, inInt);
}
редактирование: мое на C #, вам придется изменить его на vb
Добавьте ссылку на библиотеку Microsoft.VisualBasic, и вы сможете использовать Strings.Left , который точно тот же метод.
Вы можете обернуть вызов подстроки в новой функции, которая проверяет ее длину, как предложено в других ответах (правильный способ), или использует пространство имен Microsoft.VisualBasic и напрямую использует left (обычно считается неправильным способом!)