标签: string.format

我可以在string.Format中格式化NULL值吗?

我想知道是否存在在string.Format中格式化NULL值的语法,例如Excel使用的语法

例如,使用Excel我可以指定格式值{0:#,000.00;-#,000.00,NULL},这意味着如果为正数则将数值显示为数字格式,如果为负数则显示在括号中的数字格式,如果值为null则显示为NULL

string.Format("${0:#,000.00;(#,000.00);NULL}", someNumericValue);
Run Code Online (Sandbox Code Playgroud)

编辑

我正在寻找所有数据类型的格式NULL/ Nothing值,而不仅仅是数字类型.

我的例子实际上是不正确的,因为我错误地认为Excel使用第3个参数,如果值为NULL,但它实际上在值为0时使用.我将它留在那里因为它是我能想到的最接近我的东西希望能做到.

我希望避免使用null合并操作符,因为我正在编写日志记录,并且数据通常不是字符串

写一些类似的东西要容易得多

Log(string.Format("Value1 changes from {0:NULL} to {1:NULL}", 
    new object[] { oldObject.SomeValue, newObject.SomeValue }));
Run Code Online (Sandbox Code Playgroud)

而不是写

var old = (oldObject.SomeValue == null ? "null" : oldObject.SomeValue.ToString());
var new = (newObject.SomeValue == null ? "null" : newObject.SomeValue.ToString());

Log(string.Format("Value1 changes from {0} to {1}", 
    new object[] { old, new }));
Run Code Online (Sandbox Code Playgroud)

c# string.format string-formatting

40
推荐指数
2
解决办法
3万
查看次数

货币格式化MVC

我正在尝试格式化Html.EditorFor文本框以进行货币格式化,我试图将它基于TextBoxFor上的此线程String.Format.但是,我的文本仍显示为0.00,没有货币格式.

<div class="editor-field">
        @Html.EditorFor(model => model.Project.GoalAmount, new { @class = "editor-     field", Value = String.Format("{0:C}", Model.Project.GoalAmount) })
Run Code Online (Sandbox Code Playgroud)

我正在做的是代码,这里是编辑器字段div中包含的网站中该字段的html.

<input class="text-box single-line valid" data-val="true" 
 data-val-number="The field Goal Amount must be a number." 
 data-val-required="The Goal Amount field is required."
 id="Project_GoalAmount" name="Project.GoalAmount" type="text" value="0.00">
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激,谢谢!

string.format razor asp.net-mvc-3

33
推荐指数
1
解决办法
7万
查看次数

String.Format:输入字符串的格式不正确

下面的代码一直给我一个错误,说输入字符串的格式不正确,但我很确定它是对的,不是吗?

int id = 112;

String[] newData = { "1", "2", "21", "reidb", "reidb", "reidb", "reidb", "aa", 
                      "Some description", "11", "2012-02-28", "2012-01-29", "true", "1", "1", 
                      "true", "note note note", "true", "1", "2011-12-03", "45"};

String data = "{ cmd: \"save magellan deal\", data: { id: {0} , AId: {1}, " +
            "CId: {2}, CCId:{3}, LA: \"{4}\", BA: \"{5}\" , " +
            "LSA: \"{6}\" , BSA: \"{7}\" , \"path: \"{8}\"," +
            "dscp: \"{9}\", SI: \"{10}\", CD: \"{11}\", " +
            "period: \"{12}\", IsStatic: …
Run Code Online (Sandbox Code Playgroud)

.net c# string.format exception-handling

33
推荐指数
2
解决办法
3万
查看次数

Make String.format("%s",arg)显示空值参数与"null"不同

考虑toString()bean 的自定义实现:

@Override
public String toString() {
    String.format("this is %s", this.someField);
}
Run Code Online (Sandbox Code Playgroud)

this is null如果someField为null,则产生if .

有没有办法将null空值参数的默认字符串表示形式覆盖到另一个文本,即? 没有replaceAll(...)toString方法中显式调用?

注意:bean继承自可以实现的超类Formattable(http://docs.oracle.com/javase/7/docs/api/java/util/Formattable.html),但我似乎并不理解如何制作这项工作.

编辑:为了举例,该片段被过度简化,但我不是在寻找三元运算符解决方案,someField==null ? "?" : someField因为:

  • 可能(可能)涉及很多领域,toString()因此检查所有字段过于繁琐且不流畅.
  • 我无法控制的其他人(如果有的话)正在编写他们自己的子类.
  • 如果一个方法被调用并返回null,则暗示调用该方法两次或声明一个局部变量.

相反,可以使用Formattable界面或有一些自定义Formatter(这是final顺便说一句)完成任何事情?

java string null string.format string-formatting

33
推荐指数
5
解决办法
5万
查看次数

如何在.Net中有条件地格式化字符串?

我想做一些条件格式的字符串.我知道您可以按如下方式对整数和浮点数进行一些条件格式化:

Int32 i = 0;
i.ToString("$#,##0.00;($#,##0.00);Zero");
Run Code Online (Sandbox Code Playgroud)

如果变量为正,负或零,则上述代码将产生三种格式之一.

我想知道是否有任何方法可以使用字符串参数的部分.对于一个具体的,但人为的例子,我将寻找替换以下代码中的"if"检查:

string MyFormatString(List<String> items, List<String> values)
{
    string itemList = String.Join(", " items.ToArray());
    string valueList = String.Join(", " values.ToArray());

    string formatString;

    if (items.Count > 0)
    //this could easily be: 
    //if (!String.IsNullOrEmpty(itemList))
    {
        formatString = "Items: {0}; Values: {1}";
    }
    else
    {
        formatString = "Values: {1}";
    }

    return String.Format(formatString, itemList, valueList);
}
Run Code Online (Sandbox Code Playgroud)

.net c# string string.format

31
推荐指数
4
解决办法
2万
查看次数

名为String.Format,有可能吗?

而不是使用{0} {1},等我想要使用{title}.然后以某种方式填充该数据(下面我使用了a Dictionary).此代码无效并引发异常.我想知道我是否能做类似于我想要的事情.使用{0 .. N}不是问题.我只是好奇而已.

Dictionary<string, string> d = new Dictionary<string, string>();
d["a"] = "he";
d["ba"] = "llo";
d["lol"] = "world";
string a = string.Format("{a}{ba}{lol}", d);
Run Code Online (Sandbox Code Playgroud)

c# string.format

31
推荐指数
5
解决办法
1万
查看次数

格式字符串包含"{"时的String.Format异常

我使用的是VSTS 2008 + C#+ .Net 2.0.当执行以下语句时,会从String.Format语句中抛出FormatException,任何想法有什么问题?

这是获取我正在使用的template.html的地方.我想在template.html中格式化此部分m = {0}.

    string template = String.Empty;
    using (StreamReader textFile = new StreamReader("template.html"))
    {
        template = textFile.ReadToEnd();
        String.Format(template, "video.wmv");
    }
Run Code Online (Sandbox Code Playgroud)

http://www.mediafire.com/download.php?u4myvhbmmzg

编辑1:

这是我的template.html的内容,

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<!-- saved from url=(0014)about:internet -->
<head>
    <title>Silverlight Project Test Page </title>

    <style type="text/css">
    html, body {
        height: 100%;
        overflow: auto;
    }
    body {
        padding: 0;
        margin: 0;
    }
    #silverlightControlHost {
        height: 100%;
    }
    </style>

    <script type="text/javascript">
        function onSilverlightError(sender, args) { …
Run Code Online (Sandbox Code Playgroud)

.net c# string.format

31
推荐指数
3
解决办法
3万
查看次数

CultureInfo.CurrentCulture在String.Format()中是否真的必要?

您如何认为提供IFormatProvider方法确实是必要的String.Format(string, object)

编写完整变体是否更好

String.Format(CultureInfo.CurrentCulture, "String is {0}", str);
Run Code Online (Sandbox Code Playgroud)

要不就

String.Format("String is {0}", str);
Run Code Online (Sandbox Code Playgroud)

.net c# culture string.format

29
推荐指数
3
解决办法
2万
查看次数

Visual Studio 2015和IFormatProvider中的字符串插值(CA1305)

Visual Studio 2015中的新字符串插值样式是这样的:

Dim s = $"Hello {name}"
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用它,代码分析告诉我,我打破CA1305:指定IFormatProvider

在过去,我这样做:

Dim s = String.Format(Globalization.CultureInfo.InvariantCulture, "Hello {0}", name)
Run Code Online (Sandbox Code Playgroud)

但是如何用新风格来完成呢?

我必须提一下,我正在寻找.Net 4.5.2的解决方案(.Net 4.6 dcastro有答案)

.net c# vb.net string.format visual-studio-2015

29
推荐指数
3
解决办法
6077
查看次数

C++的String.Format

寻找像.NET的String.Format这样的函数的C++实现.显然有printf和它的品种,但我正在寻找一些位置如下的东西:

String.Format("你好{0}.你已经{1}岁了.感觉{1}怎么样?",姓名,年龄);

这是必要的,因为我们将尝试更轻松地本地化我们的应用程序,并将翻译器{0}和{1}放在句子中的任何位置比给他们%s,%d,%要容易得多d必须按其顺序排列.

我认为搜索和替换变量输入(va_start,va_end等)是我最终要构建的,但如果已经有一个可靠的解决方案,那将是首选.

谢谢 :)

c++ string.format printf localization

27
推荐指数
5
解决办法
2万
查看次数