猿问

如何使用 C# 中设置的字符数将字符串解析为数组

我有一些像这样的c#代码:


string myString = "20180426";

我知道如何解析特定字符(使用 string.Split 东西),但我如何让它返回 3 个这样的字符串:


2018

04

26

我有几个以这种方式格式化的字符串(“YYYYMMDD”),所以我不想要只适用于这个特定字符串的代码。我尝试使用


var finNum = myString[0] + myString[1] + myString[2] + myString[3];

Console.Write(finNum);

但我想它将字符视为整数,而不是文本字符串,因为它正在对它们进行一些数学运算而不是连接(它也不是加法,因为它返回 203,这不是 2、0、1 和 8 的总和)。


我尝试更改var为string,但它不会让我隐式地将 int 转换为字符串。为什么它认为那string myString是 a int,而不是string我声明的 a ?


我也可以使用DateTime.Parseand DateTime.ParseExact,但显然“20180426”不被识别为有效的 DateTime:


DateTime myDate = DateTime.ParseExact(myString, "YYYYMMDD", null);

Console.WriteLine(myDate);

谢谢您的帮助。我知道答案可能很简单,而且我觉得问起来很愚蠢,但我认真检查了各个网站,在这里找不到适合我的问题的解决方案。


jeck猫
浏览 123回答 2
2回答

慕森卡

我也可以使用DateTime.Parseand DateTime.ParseExact,但显然 "20180426" 不被识别为有效的DateTime.是的,因为格式字符串YYYYMMDD不正确,所以年份和日期都是小写的:DateTime myDate = DateTime.ParseExact(myString, "yyyyMMdd", null);如果你想要年、月和日:int year = myDate.Year;int month = myDate.Month;int day = myDate.Day;

慕标琳琳

如果您想用变量分隔年、月和日,您可以尝试:       string mystring = "20180426";       mystring = mystring.Insert(4,"-");       mystring = mystring.Insert(7,"-");       string year = mystring.Split('-')[0];       string month = mystring.Split('-')[1];       string day = mystring.Split('-')[2];首先我添加一个字符“-”来分隔年和月,然后再添加一个字符来分隔月和日。你会得到类似“2018-04-26”的东西然后我拆分字符串并将存储字符串前 4 个数字的位置 0 保存到名为 year 的变量中。
随时随地看视频慕课网APP
我要回答