我有一个像这样的字符串" 00.00-0-00"我需要像这样转变" 0000-0 / 00"
我已经尝试过了: field.ToString(" #### - ## / ##")'没有成功 String.Format(CultureInfo.InvariantCulture," {0:#### - #/ ##}",field)'没有成功
对此有何帮助?
答案 0 :(得分:1)
我的版本如果您的原始格式没有变化(也可以作为其他答案),则可以使用
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]));
答案 1 :(得分:0)
以下是我将如何做(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,你也可以使用连接(+
)
答案 2 :(得分:0)
如果您知道您的字符串将始终采用格式,您可以手动执行此操作。如果你需要做很多事情,你可以创建一个函数来完成它。
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);
}
答案 3 :(得分:0)
如果您的格式始终是" 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+)", "$1$2-$3/$4"))
C#
string data = "00.00-0-00";
Console.WriteLine(Regex.Replace(data, "(\\d+)\\.(\\d+)-(\\d+)-(\\d+)", "$1$2-$3/$4"));
结果:
0000-0/00
Regex
正在将所有数字捕获到组中,您只需将组与所需的分隔符重新组合在一起。