C# 如何在不使用拆分函数的情况下拆分字符串?

C# 如何在不使用拆分函数的情况下拆分字符串?,c#,C#,我在下面有这个参数 令牌[10]=“日期:UTC 2012-02-02 17:09:04” 我编写下面的代码只是为了提取年份和月份,所以它应该是“201202”。 不管怎么说,我只需要使用split就可以得到这些值,我知道我们也可以使用regex,但这是提取这些值的其他方法吗 string Encdate = tokens[10]; string[] EncdateValue = Encdate.ToString().Split(' '); str

我在下面有这个参数

令牌[10]=“日期:UTC 2012-02-02 17:09:04”

我编写下面的代码只是为了提取年份和月份,所以它应该是“201202”。 不管怎么说,我只需要使用split就可以得到这些值,我知道我们也可以使用regex,但这是提取这些值的其他方法吗

        string Encdate = tokens[10];
        string[] EncdateValue = Encdate.ToString().Split(' ');
        string Encdatesplit = EncdateValue[2].TrimStart();
        string[] YYMM = Encdatesplit.ToString().Split('-');
        string YYMMVal = YYMM[0] + YYMM[1];
var t=令牌[10]

您还可以使用所需字符的串联:

string Encdate = t[10] + t[11] + t[12] + t[13] + t[15] + t[16];
或使用子字符串(用于添加两个):

或子字符串和删除:

string Encdate = t.Substring(10, 7).Remove(4);
var t=令牌[10]

您还可以使用所需字符的串联:

string Encdate = t[10] + t[11] + t[12] + t[13] + t[15] + t[16];
或使用子字符串(用于添加两个):

或子字符串和删除:

string Encdate = t.Substring(10, 7).Remove(4);

只需使用
DateTime.ParseExact
方法并从返回的
DateTime
对象访问
Year
Month
属性,否则使用和方法获取yyyyMM格式,下面是一个示例:

        var d = DateTime.ParseExact(token, "'Date: UTC' yyyy-MM-dd HH:mm:ss", 
                CultureInfo.InvariantCulture, 
                DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal);

        Console.WriteLine(d.ToString("yyyyMM"));

只需使用
DateTime.ParseExact
方法并从返回的
DateTime
对象访问
Year
Month
属性,否则使用和方法获取yyyyMM格式,下面是一个示例:

        var d = DateTime.ParseExact(token, "'Date: UTC' yyyy-MM-dd HH:mm:ss", 
                CultureInfo.InvariantCulture, 
                DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal);

        Console.WriteLine(d.ToString("yyyyMM"));

可以执行一些字符串操作,将其强制转换为datetime,然后对其执行格式化的.ToString(),为什么不将日期解析为datetime对象,并使用datetime函数提取组件呢。获取年份和月份,并将它们连接起来以获得所需的值。@Agacian,听起来不错。@StefanH,非常感谢,我将尝试按照您的想法进行操作。似乎您的数据位于固定位置,那么为什么要麻烦使用Split()或日期转换,请按照@keijzers的建议执行简单的Substring()提取(用
Encdate
替换
token
后)可以执行一些字符串操作,将其转换为datetime,然后执行格式化的.ToString()关于它,为什么不将日期解析为DateTime对象,并使用DateTime函数提取组件。获取年份和月份,并将它们连接起来以获得所需的值。@Agacian,听起来不错。@StefanH,非常感谢,我将尝试遵循您的想法。似乎您的数据位于固定位置,那么为什么要使用Split()呢或者日期转换,按照@keijzers的建议执行一个简单的子字符串()提取(将
token
替换为
Encdate
)我的令牌[10]值是“日期:UTC 2012-02-02 17:09:04”。在您的问题中是:token=“日期:UTC 2012-02-02 17:09:04”欢迎您……但是我的答案不是您想要的吗?它们都会导致“201202”。我的代币[10]值是“日期:UTC 2012-02-02 17:09:04”。在您的问题中声明:token=“日期:UTC 2012-02-02 17:09:04”欢迎您……但是我的答案不是您想要的吗?它们都会导致“201202”。