我想知道如何检查inputfile
的每一行中的第一个字母是什么类型的数据(整数 / char ) 。
我找不到能回答我问题的东西,特别是因为我不知道在这之后我该怎么搜索。
例如,在我的inputfile
中构建如下:
Birthdate;Name
19920711;John
19801106;Alex
19950327;Sam
现在我只想过滤掉没有姓名和标题的日期。怎么可能?
答案 0 :(得分:1)
您可以使用Char.IsDigit
和/或Char.IsLetter
例如:
Using sr As New StreamReader("c:\myfile")
Do Until sr.EndOfStream
Dim line = sr.ReadLine
If line.Length > 0 Then
If Char.IsLetter(line(0)) Then
Debug.WriteLine("First char is a letter")
ElseIf Char.IsNumber(line(0)) Then
Debug.WriteLine("First char is a number")
End If
End If
Loop
End Using
答案 1 :(得分:0)
您可以使用以下使用Char.IsDigit
和DateTime.TryParseExact
:
var linesWithoutHeader = File.ReadLines(path)
.Select(line => line.Trim())
.SkipWhile(line => line.Length == 0 || !Char.IsDigit(line[0]));
DateTime birthDate = DateTime.MinValue;
List<DateTime> birthDateList = linesWithoutHeader
.Where(line => line.Contains(';'))
.Select(line => line.Remove(line.IndexOf(';')))
.Where(dateStr => DateTime.TryParseExact(dateStr, "yyyyMMdd", null, DateTimeStyles.None, out birthDate))
.Select(dateStr => birthDate)
.ToList();