标签: string.format

使用C#中的String.Format格式化字符串时出现问题

我需要在特定格式的消息框中打印一个字符串,我使用的代码如下所示:

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中打印它.角色和"空间"所占据的空间是不同的.对此有何解决方案?

c# string.format messagebox

3
推荐指数
1
解决办法
3598
查看次数

如何应用不同的格式,具体取决于数字是正数还是负数

我输出的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)

c# vb.net double formatting string.format

3
推荐指数
1
解决办法
2661
查看次数

在"012.345.678-90"中格式化"01234567890"的更好方法是什么?

我有一个关于如何格式化字符串的简单问题.

我将这个数字作为字符串"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.

.net c# string.format

3
推荐指数
1
解决办法
549
查看次数

带有符号的String.Format十进制,固定的小数位数,无小数点分隔符

String.Format是一种最干净,最易读的方法,具有以下条件的小数

  • 以符号开头(+或 - )
  • 固定数量的小数位数
  • 没有小数分隔符
  • 对齐
  • 用"0"预先填充

例如

  • 123,45将成为"+0012345"
  • -1123,45将成为"-0112345"

.net vb.net string.format decimal

3
推荐指数
1
解决办法
4719
查看次数

如何在groovy中使用String.format?

下面的代码打印response以空格开头的变量.

前的要被打印的空格数response变量相当于所述差itemNumberexamineeResponses.

现在,是否可以"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)

groovy string.format

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

System.FormatException的字符串

我收到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)

这种格式有什么问题?

c# string.format formatexception

3
推荐指数
1
解决办法
4495
查看次数

为什么我会遇到StringFormat错误?

使用此代码(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"

问题是什么?

c# stringbuilder string.format

3
推荐指数
1
解决办法
75
查看次数

奇怪的System.Format异常

我只是在尝试为我的单元测试构建一个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'的未处理的异常

其他信息:输入字符串的格式不正确。”

c# string.format

3
推荐指数
1
解决办法
2885
查看次数

在Python中使用.format()方法时,如何在{}中使用多个参数

我希望python中的表格打印如下:

显然,我想使用.format()方法,但是我有很长的浮点数看起来像这样:1464.1000000000001我需要将浮点数舍入为止,它们看起来像这样:( 1464.10总是两位小数,即使两者都是零,所以我不能使用round()函数).

我可以使用浮动圆形"{0:.2f}".format("1464.1000000000001"),但是它们不会打印到漂亮的桌子上.

我可以通过这样做把它们放到漂亮的桌子里"{0:>15}.format("1464.1000000000001"),但是它们并没有四舍五入.

有办法做到这两点吗?有点像"{0:>15,.2f}.format("1464.1000000000001")

python string.format rounding string-formatting python-3.x

3
推荐指数
1
解决办法
1436
查看次数

字符串格式.format到变量

我正在尝试创建一个函数,允许我使用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循环中没有增加的原因吗?解决方案是什么?

python string iteration string.format while-loop

3
推荐指数
1
解决办法
102
查看次数