我一直都在'管子里,我无法想出这个.可能很简单.
以下String.Format电话:
return dt.ToString("MMM d yy 'at' H:mmm");
Run Code Online (Sandbox Code Playgroud)
正确地返回这个:
2008年9月23日12:57
现在让我们说我想在年之前添加一个单引号,以返回:
08年9月23日12:57
由于单引号是保留的转义字符,如何转义单引号以使其显示?
我试过双,三和四单引号,没有运气.
这个问题几乎与java的.Net问题相同.
你如何逃避java string.format中的%1 $字符?
我需要这样做的原因是我正在构建一个字符串,以后会有更多信息插入其中.我曾经想过让其中一个args只是"%1 $",但这似乎不是很优雅?
对不起,如果这很明显我的java有点生疏了.
在下面的例子中,我想格式化为1位小数,但python似乎想要将数字四舍五入,有没有办法让它不是数字上升?
>>> '{:.1%}'.format(0.9995)
'100.0%'
>>> '{:.2%}'.format(0.9995)
'99.95%'
Run Code Online (Sandbox Code Playgroud)
谢谢!:)
我试图打印布尔表达式的真值表.在这样做时,我偶然发现了以下情况:
>>> format(True, "") # shows True in a string representation, same as str(True)
'True'
>>> format(True, "^") # centers True in the middle of the output string
'1'
Run Code Online (Sandbox Code Playgroud)
只要指定格式说明符,就format()转换True为1.我知道这bool是一个子类int,因此True评估为1:
>>> format(True, "d") # shows True in a decimal format
'1'
Run Code Online (Sandbox Code Playgroud)
但是,为什么不使用格式说明符的变化'True',以1在第一个例子?
我转向文档澄清.它唯一说的是:
一般惯例是,空格式字符串(
"")产生的结果与调用str()该值时的结果相同.非空格式字符串通常会修改结果.
因此,当您使用格式说明符时,字符串会被修改.但是,为什么从变化True到1,如果只对准运营商(例如^)被指定?
我有一些双重值,我想转换为具有此模式的字符串:
0.xx or x.xx
Run Code Online (Sandbox Code Playgroud)
目前我试过这个:
double.ToString("#.#0");
Run Code Online (Sandbox Code Playgroud)
如果我的号码从零开始,我应该添加什么才能看到零?
我想@String.Format("{0:0.00}",Model.CurrentBalance)进入这个@Html.TextBoxFor(model => model.CurrentBalance, new { @class = "required numeric", id = "CurrentBalance" })
我只是希望货币在我的文本框中显示为.00但是没有运气.关于我如何做这个的任何想法?
我有几个C#应用程序进行日志记录,并且Output方法有一个重载来接受消息和StreamWriter,另一个重载有一个params数组的附加参数.方法签名的一个示例是:
private static void Output(string message, StreamWriter writer, params object[] args)
{..}
private static void Output(string message, StreamWriter writer)
{..}
Run Code Online (Sandbox Code Playgroud)
问题涉及Resharper对这些方法给出以下警告:" 带有可选参数的方法被重载隐藏 ".
该警告具有误导性,因为我从3个param重载内部调用2-param重载并且它不会导致递归调用,因此不会隐藏重载.
我对Resharper网站做了一些研究,并且在这个问题上已经打开了一些已经关闭的门票,因为"无法修复".
在我看来,这是一个有效的用例,因为运行时知道调用哪个重载..NET框架中也有一些示例,它们使用这种重载.
例如,StreamWriter.WriteLine()要写入值的重载,以及Format params.
这是一个有效的参数,还是应该将我的方法重命名为类似"OutputFormat"的东西,因为它们在幕后使用string.Format来构建一个带有指定参数的字符串?
在C中,printf()语句允许在参数列表中提供精度长度.
printf("%*.*f", 7, 3, floatValue);
Run Code Online (Sandbox Code Playgroud)
其中星号分别用第一和第二值替换.
我正在寻找Android/Java中的等价物; String.format()抛出异常.
编辑:谢谢,@ Tenner; 它确实有效.
什么是性能优先级以及优先选择以下各项的条件:
String.Format("{0}, {1}", city, state);
Run Code Online (Sandbox Code Playgroud)
要么
city + ", " + state;
Run Code Online (Sandbox Code Playgroud)
要么
StringBuilder sb = new StringBuilder();
sb.Append(city);
sb.Append(", ");
sb.Append(state);
sb.ToString();
Run Code Online (Sandbox Code Playgroud) .net performance stringbuilder string.format string-concatenation
我想在字符串中显示两个日期之间的经过时间.
假设我有以下代码:
DateTime date1 = DateTime.Now();
System.Threading.Thread.Sleep(2500);
DateTime date2 = DateTime.Now();
TimeSpan elapsed = date2.substract(date1);
Console.WriteLine("> {0:hh:mm:ss}", elapsed);
Run Code Online (Sandbox Code Playgroud)
我期待的是:
> 00:00:03
Run Code Online (Sandbox Code Playgroud)
我得到了什么:
> 00:00:02.5002500
Run Code Online (Sandbox Code Playgroud)
有没有办法使用String.Format函数只返回完整秒?
我还尝试删除小数位:
elapsed = elapsed.Substract(TimeSpan.FromMiliseconds((double)Timespan.Miliseconds);
Run Code Online (Sandbox Code Playgroud)
但是,自从elapsed以来,这都不起作用.Miliseconds返回500作为整数.
string.format ×10
.net ×4
c# ×3
java ×2
python ×2
android ×1
boolean ×1
escaping ×1
overloading ×1
performance ×1
printf ×1
python-2.7 ×1
resharper ×1
string ×1
timespan ×1