ToString格式
ToString Format
我有一个像这样的字符串“00.00-0-00”,我需要像这样转换“0000-0/00”
我已经试过了:
field.ToString("####-##/##") '没有成功
String.Format(CultureInfo.InvariantCulture, "{0:####-#/##}", field) '没有成功
有什么帮助吗?
我会这样做(val 是输入字符串)
string.Format(@"{0}{1}-{2}/{3}",
val.Substring(0,2),
val.Substring(3,2),
val.Substring(6,1),
val.Substring(8,2));
如果你不喜欢 string.Format 你也可以使用串联 (+
)
如果您知道您的字符串将始终采用该格式,您可以手动完成。如果你经常需要这样做,你可以创建一个函数来完成它。
Dim oldString As String = "00.00-0-00"
Dim newString As String = MakeNewString(oldString)
要调用的函数:
Function MakeNewString(oldString As String) As String
Dim noPeriod As String = Replace(oldString, ".", "")
Return Split(noPeriod, "-")(0) & "-" & Split(noPeriod, "-")(1) & "/" & Split(noPeriod, "-")(2)
End Function
在 C# 中:
string oldString = "00.00-0-00";
string newString = MakeNewString(oldString);
C# 函数:
public string MakeNewString(string oldString)
{
string noPeriod = Strings.Replace(oldString, ".", "");
return Strings.Split(noPeriod, "-")(0) + "-" + Strings.Split(noPeriod, "-")(1) + "/" + Strings.Split(noPeriod, "-")(2);
}
如果您的格式始终是“00.00-0-00”,那么您可以这样使用 Regex.Replace()
:
VB.NET
Dim data As String = "00.00-0-00"
Console.WriteLine(Regex.Replace(data, "(\d+)\.(\d+)-(\d+)-(\d+)", "-/"))
C#
string data = "00.00-0-00";
Console.WriteLine(Regex.Replace(data, "(\d+)\.(\d+)-(\d+)-(\d+)", "-/"));
结果:
0000-0/00
Regex
将所有数字捕获到组中,您只需将这些组与您想要的任何分隔符放回一起即可。
我的版本如果你的原始格式没有改变就可以工作(其他答案也基于)
Dim oldString As String = "00.00-0-00"
Dim parts As String() = oldString.Split({"."c, "-"c})
Dim result As String = _
String.Format("{0}{1}-{2}/{3}", parts(0), parts(1), parts(2), parts(3)))
C# 版本
string original = "00.00-00-00";
string[] parts = original.Split(new char[] {'.', '-'});
string result = String.Format("{0}{1}-{2}/{3}", parts[0], parts[1], parts[2], parts[3]));
我有一个像这样的字符串“00.00-0-00”,我需要像这样转换“0000-0/00”
我已经试过了: field.ToString("####-##/##") '没有成功 String.Format(CultureInfo.InvariantCulture, "{0:####-#/##}", field) '没有成功
有什么帮助吗?
我会这样做(val 是输入字符串)
string.Format(@"{0}{1}-{2}/{3}",
val.Substring(0,2),
val.Substring(3,2),
val.Substring(6,1),
val.Substring(8,2));
如果你不喜欢 string.Format 你也可以使用串联 (+
)
如果您知道您的字符串将始终采用该格式,您可以手动完成。如果你经常需要这样做,你可以创建一个函数来完成它。
Dim oldString As String = "00.00-0-00"
Dim newString As String = MakeNewString(oldString)
要调用的函数:
Function MakeNewString(oldString As String) As String
Dim noPeriod As String = Replace(oldString, ".", "")
Return Split(noPeriod, "-")(0) & "-" & Split(noPeriod, "-")(1) & "/" & Split(noPeriod, "-")(2)
End Function
在 C# 中:
string oldString = "00.00-0-00";
string newString = MakeNewString(oldString);
C# 函数:
public string MakeNewString(string oldString)
{
string noPeriod = Strings.Replace(oldString, ".", "");
return Strings.Split(noPeriod, "-")(0) + "-" + Strings.Split(noPeriod, "-")(1) + "/" + Strings.Split(noPeriod, "-")(2);
}
如果您的格式始终是“00.00-0-00”,那么您可以这样使用 Regex.Replace()
:
VB.NET
Dim data As String = "00.00-0-00"
Console.WriteLine(Regex.Replace(data, "(\d+)\.(\d+)-(\d+)-(\d+)", "-/"))
C#
string data = "00.00-0-00";
Console.WriteLine(Regex.Replace(data, "(\d+)\.(\d+)-(\d+)-(\d+)", "-/"));
结果:
0000-0/00
Regex
将所有数字捕获到组中,您只需将这些组与您想要的任何分隔符放回一起即可。
我的版本如果你的原始格式没有改变就可以工作(其他答案也基于)
Dim oldString As String = "00.00-0-00"
Dim parts As String() = oldString.Split({"."c, "-"c})
Dim result As String = _
String.Format("{0}{1}-{2}/{3}", parts(0), parts(1), parts(2), parts(3)))
C# 版本
string original = "00.00-00-00";
string[] parts = original.Split(new char[] {'.', '-'});
string result = String.Format("{0}{1}-{2}/{3}", parts[0], parts[1], parts[2], parts[3]));