我需要在特定格式的消息框中打印一个字符串,我使用的代码如下所示:
string text="";
for (int i=0; i<n; i++)
{
a=..
b=..
c=..
text += String.Format("{0, -8} {1,-4} {2,8}", a, b, c);
}
MessageBox.Show(text);
Run Code Online (Sandbox Code Playgroud)
因此,对于以下一组值:
XYZ,ABC,100
X,ABC,100
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:
XYZ ABC 100
X ABC 100
Run Code Online (Sandbox Code Playgroud)
所以你可以看到第二行格式不正确.可能这种情况正在发生,因为我在MessageBox中打印它.角色和"空间"所占据的空间是不同的.对此有何解决方案?
我输出的Double可以是(+)或负( - ).如果数字为负数,则自动包含符号( - ),是否还有一种方法可以对正数进行此操作?
我能做到的唯一(可怕)方式是:
If MyNumber <= 0 then
string.Format("{0:0.00}", MyNumber)
Else
string.Format("+{0:0.00}", MyNumber)
End If
Run Code Online (Sandbox Code Playgroud) 我有一个关于如何格式化字符串的简单问题.
我将这个数字作为字符串"01234567890",左边为零,需要将其格式化为" 012.345.678-90 ".
我用它解决了它
char[] charArgs = sCPF.ToCharArray();
return String.Format("{0}{1}{2}.{3}{4}{5}.{6}{7}{8}-{9}{10}",
charArgs[0], charArgs[1], charArgs[2], charArgs[3],
charArgs[4], charArgs[5], charArgs[6], charArgs[7],
charArgs[8], charArgs[9], charArgs[10]);
Run Code Online (Sandbox Code Playgroud)
我也试过了:
Convert.ToInt64("01234567890").ToString("000.000.000-00")
Run Code Online (Sandbox Code Playgroud)
但那给了我"1234567890,000000-00"
但如果我也试过这个
Convert.ToInt64("01234567890").ToString("000-000-000-00")
Run Code Online (Sandbox Code Playgroud)
这导致"012-345-678-90",但在这种情况下不是我需要的,我需要点(.).
有没有更好的方法呢?
我正在使用.net 2.0.
String.Format是一种最干净,最易读的方法,具有以下条件的小数
例如
下面的代码打印response以空格开头的变量.
前的要被打印的空格数response变量相当于所述差itemNumber和examineeResponses.
现在,是否可以"0"使用String.format 将字符串填充为零()而不是空格?
def converted = examineeResponses+String.format("%${itemNumber - 1}s", response)
Run Code Online (Sandbox Code Playgroud)
使用上述代码的示例:
examineeResponses = '1' // String
itemNumber = 10 //int
response = '3' // String
Run Code Online (Sandbox Code Playgroud)
输出:
" 3"
Run Code Online (Sandbox Code Playgroud)
期望的输出:
"000000003"
Run Code Online (Sandbox Code Playgroud) 我收到System.FormatException:运行此方法时输入字符串的格式不正确.
字段的值:
arrayName = "requester";
fieldList = "\"name\" : \"shimshon\""; // "name" : "shimshon"
public override string ToString()
{
var val = string.Format("\"{0}\" : { {1} }", arrayName, fieldList);
return val;
}
Run Code Online (Sandbox Code Playgroud)
该方法的期望结果是
"requester" : { "name" : "shimshon" }
Run Code Online (Sandbox Code Playgroud)
这种格式有什么问题?
使用此代码(sbJava是一个StringBuilder):
String androidFindLine = string.Format("Button _{0} = (Button) findViewById(R.id.{0});\"", btnId);
sbJava.Append(androidFindLine);
sbJava.Append(Environment.NewLine);
sbJava.Append(string.Format("_{0}.setOnClickListener(new View.OnClickListener() { ", btnId));
Run Code Online (Sandbox Code Playgroud)
我明白了
System.FormatException未处理_HResult = -2146233033 _message =输入字符串格式不正确...
btnId的值是"btnbutton_up"
问题是什么?
我只是在尝试为我的单元测试构建一个json字符串,并且意外地,以下代码返回系统格式异常。错误消息表明它正在尝试解析日期,这对我来说很奇怪。我不是要解析日期。
class Program
{
static void Main(string[] args)
{
Console.WriteLine(GetJson());
Console.ReadKey();
}
static string GetJson(string dateStr = "", string lta = "5.25")
{
return String.Format("[{\"dateBooking\":\"{0}\",\"lta\":\"{1}\"}]", dateStr, lta);
}
}
Run Code Online (Sandbox Code Playgroud)
可以很容易地复制它,但是我要添加异常详细信息:
“ mscorlib.dll中发生了类型为'System.FormatException'的未处理的异常
其他信息:输入字符串的格式不正确。”
我希望python中的表格打印如下:

显然,我想使用.format()方法,但是我有很长的浮点数看起来像这样:1464.1000000000001我需要将浮点数舍入为止,它们看起来像这样:( 1464.10总是两位小数,即使两者都是零,所以我不能使用round()函数).
我可以使用浮动圆形"{0:.2f}".format("1464.1000000000001"),但是它们不会打印到漂亮的桌子上.
我可以通过这样做把它们放到漂亮的桌子里"{0:>15}.format("1464.1000000000001"),但是它们并没有四舍五入.
有办法做到这两点吗?有点像"{0:>15,.2f}.format("1464.1000000000001")?
我正在尝试创建一个函数,允许我使用while循环将字符串传递给age变量.这是使用.format字符串的代码的简化版本.以下代码按预期工作.
num = 1
while num<7:
age = 'My age is {}'.format(num)
print(age)
num+=2
Run Code Online (Sandbox Code Playgroud)
输出如下图所示:
My age is 1
My age is 3
My age is 5
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用while循环捕获年龄变量中的字符串'My age is {}'时,它不起作用.这是代码.
num = 1
age = 'My age is {}'
while num<7:
age = age.format(num)
print(age)
num+=2
Run Code Online (Sandbox Code Playgroud)
我得到以下输出.
My age is 1
My age is 1
My age is 1
Run Code Online (Sandbox Code Playgroud)
知道第二个例子中num在while循环中没有增加的原因吗?解决方案是什么?
string.format ×10
c# ×6
.net ×2
python ×2
vb.net ×2
decimal ×1
double ×1
formatting ×1
groovy ×1
iteration ×1
messagebox ×1
python-3.x ×1
rounding ×1
string ×1
while-loop ×1