ToString格式

时间:2015-07-13 19:33:16

标签: c# vb.net string.format

我有一个像这样的字符串" 00.00-0-00"我需要像这样转变" 0000-0 / 00"

我已经尝试过了: field.ToString(" #### - ## / ##")'没有成功 String.Format(CultureInfo.InvariantCulture," {0:#### - #/ ##}",field)'没有成功

对此有何帮助?

4 个答案:

答案 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正在将所有数字捕获到组中,您只需将组与所需的分隔符重新组合在一起。