我想在STRING中交换两个值 这是使用字符完成此操作的示例:
string str =“ PQRQP”;
var res= str.Select(a=> a == 'P' ? 'Q' : (a=='Q' ? 'P' : a)).ToArray();
str = new String(res);
Console.WriteLine(str);
但是我的字符串是2/7/2019,我想每次交换2和7,但是由于这些值来自用户输入,因此在运行时之前我不知道它们将是什么。
任何帮助表示感谢,谢谢!!
-----------我的解决方案----------------
String values = DateRangePicker1.Value.ToString();
String startDate = values.Substring(0, 8);
String endDate = values.Substring(11, 8);
DateTime date = DateTime.ParseExact(startDate, "M/d/yyyy", CultureInfo.InvariantCulture);
DateTime date1 = DateTime.ParseExact(endDate, "M/d/yyyy", CultureInfo.InvariantCulture);
String newSDate = date.ToString();
String newEDate = date1.ToString();
String finalSDate = newSDate.Substring(0, 10);
String finalEDate = newEDate.Substring(0, 10);
我知道这有点混乱,但是在不影响性能的情况下为我工作
答案 0 :(得分:4)
这似乎是一个本地化问题(基于您提供的字符串看起来像日期的事实)
是否有可能仅通过提供正确的日期注释来解决您的问题?
DateTime.ParseExact(string)
例如,是一种方法,如果您告诉它字符串格式是什么,则允许您从字符串创建日期时间对象
示例:
DateTime date = DateTime.ParseExact("2/1/2019", "M/d/yyyy", CultureInfo.InvariantCulture);
将提供一个设置为2019年2月1日的datetime对象。然后,您可以使用以下方法将datetime对象转换为字符串:
date.ToString("dd-MM-yy");
output: 01-02-19
编辑:如果您有一系列可接受的格式,则可以以字符串形式提供一系列格式。
答案 1 :(得分:0)
您可以使用split来获取您不知道的角色。 像这样:
var sepratedInput = input.split('/');
var res= sepratedInput[1] +"/"+sepratedInput[0]+"/"+sepratedInput[2];
Console.write(res);