标签: string.format

如何格式化Int32数字?

获取格式化Int32数字的最佳方法是什么?

假设我有这个o功能:

string o(int x);
Run Code Online (Sandbox Code Playgroud)

这是o需要根据需要返回的值x

x = 0    =>    o = 00
x = 1    =>    o = 01
x = 5    =>    o = 05
x = 10   =>    o = 10
x = 31   =>    o = 31
x = 106  =>    o = 106
Run Code Online (Sandbox Code Playgroud)

.net c# format int string.format

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

String.Format失败并出现奇怪的错误

我有一个使用以下代码运行的方法:

private void WriteToDb()
{
    using (SqlConnection dbConnection = new SqlConnection(_conStr))
    {
        dbConnection.Open();
        using (SqlBulkCopy sbc = new SqlBulkCopy(_conStr))
        {
            sbc.DestinationTableName = "tblLog";
            try
            {
                sbc.WriteToServer(_tblLog);
            }
            catch (Exception e)
            {
                Console.WriteLine(String.Format("{0} Error writing log info: {1} \n {3}", DateTime.Now.ToString(), e.Message, e.StackTrace));
            }
        }
    }

    _tblLog.Rows.Clear();
}
Run Code Online (Sandbox Code Playgroud)

我从String.Format()具有以下堆栈跟踪的方法接收异常:

未处理的异常:System.FormatException:索引(从零开始)必须大于或等于零且小于参数列表的大小.在System.String.Format(String格式,对象arg0)的System.String.Format(IFormatProvider提供程序,String格式,Object [] args)的System.Text.StringBuilder.AppendFormat(IFormatProvider提供程序,String格式,Object [] args)处,Object arg1,Object arg2)at MyCompany.MyClient.MySoftware.Logger.WriteToDb()

我真的能看到这个错误的根源.据我所知,我没有在该方法中使用任何集合.我还必须咀嚼这个方法是多线程的,但我再也想不到可能产生的影响.

谢谢!

c# string.format multithreading exception

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

string.format(**D) 中的 **D 是什么意思?

我正在阅读《Python 编程》,无法弄清楚以下代码中 **D 的含义:

>>> D = {'say': 5, 'get': 'shrubbery'}
>>> '%(say)s => %(get)s' % D
'5 => shrubbery'
>>> '{say} => {get}'.format(**D)
'5 => shrubbery'
Run Code Online (Sandbox Code Playgroud)

我用 google 搜索了 python 中的 **kwargs,大多数结果都在讨论让函数接受任意数量的关键字参数。

这里的 string.format(**D) 看起来不像是让函数接受任意数量的关键字参数的东西,因为我看到字典类型变量 D 只是一个参数。但这是什么意思呢?

python string.format

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

从代码隐藏格式化 DataGridTextColumn

也许,我想,事情太简单了。我有一个数据网格,从后面的代码动态添加列。这有效。然后我有带有整数值的列,我希望在列中看到右对齐,但它失败了。我的代码是:

    public List<List<int>> IntegerData { get; set; }................

            DataGridTextColumn textC = new DataGridTextColumn();
            textC.Header = ("Column");
            textC.Binding = new Binding(string.Format("[{0}]", i));    
            textC.Binding.StringFormat = "00000"; 
Run Code Online (Sandbox Code Playgroud)

最后我有类似的东西:

            myDataGrid.Itemssource = IntegerData
Run Code Online (Sandbox Code Playgroud)

使用 textC.Binding.String.Format 的问题是:(首先:看来,stringFormat-LIne 正确重载了前一行)

格式“0”给出一个整数“1”“2”,这是正确的。

格式“00000”给出“00001”“00002”“00003”,这对于字符串格式是正确的,但不是我想要的

但:

格式 "######" 也给出 "1" "2" .. 等等(左对齐,没有前导空格)

由于格式规则我期望(或希望), ##### 是所描述的占位符,结果是 "bbbb1" , "bbbb2" 右对齐。(b 在这里是空白!)

所以绑定似乎正确处理“00000”格式,但不能正确处理“######”格式。有人对这个想法有任何想法或经验吗?(我在互联网上找到的所有其他绑定要复杂得多)

c# wpf string.format code-behind datagridtextcolumn

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

使用String.Format时的异常"Index(从零开始)必须大于或等于零且小于参数列表的大小."

我有一个阵列

ArrayList array = new ArrayList();
array.Add("a");
array.Add("b");
array.Add("c");
Run Code Online (Sandbox Code Playgroud)

我有一个字符串变量refFormat,其格式如下.

string refFormat = "{2} {0}";
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用此格式从数组中获取一串值.以下是我写的内容.

string newStr = String.Format(refFormat,array.ToArray());
Run Code Online (Sandbox Code Playgroud)

当我尝试这样做时,我得到以下异常.

索引(从零开始)必须大于或等于零且小于参数列表的大小.

我知道这个问题听起来很重复,但我怀疑的是如何从数组中选择其索引是以20格式指定的.请帮忙..

编辑:对不起提出错误的问题.我正在使用arraylist而不是字符串数组我正在尝试相同的.尽管使用ToArray()将其转换为数组,我仍然得到异常.我哪里错了?而且我也不能在这里使用List而不是arraylist,因为数组包含不同类型的数据.请帮帮我..

c# arrays string.format

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

C# 使用正则表达式分割 string.format 字符串

我希望能够在变量的位置指示器上拆分格式化字符串。它将删除花括号和它们之间指示数字的位置。
所以,字符串:

string format = "{0} field needs to be set to '{1}' when {2},  Fixit.  NOW!";
Run Code Online (Sandbox Code Playgroud)

应解析为 3 个字符串。

  • “该字段需要设置为‘”
  • “' 什么时候 ”
  • “,修复。现在!”

我们使用像上面的“格式”这样的字符串来构建错误消息。我的目标是添加通用单元测试,可以采用该格式并验证是否生成了与预期格式匹配的错误消息。由于错误生成代码和单元测试引用相同的格式,因此当对消息进行微小更改时,不需要更新单元测试。

在上面的示例中,我将能够通过调用名为 SplitFormatString 的新方法来测试预期结果。

string fieldName = "UserName";
string expectedValue = "Bob";
string condition = "excellence is a must";
string errorMessage = TestFieldValueErrorCase( );
AssertStringContainsAllThese(errorMessage, SplitFormatString(format), fieldName, expectedValue,condition);
Run Code Online (Sandbox Code Playgroud)

经过验证

public static void AssertStringContainsAllThese(string msg, string[] formatChunks, params string[] thingsToFind)
{
  foreach (var txt in formatChunks.Concat(thingsToFind))
  {
    Assert.IsTrue(msg.Contains(txt), "Could not find <<" + txt + ">> …
Run Code Online (Sandbox Code Playgroud)

c# regex string.format split

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

C# 如何替换字符串中的变量

string name = "name1";
string country = "country1";
string greet = "Hi {name}, Are you from {country}";
Run Code Online (Sandbox Code Playgroud)

我从数据库字符串中获取了带有一些变量的字符串。我知道string.format()或者$""更换,但这解决不了。

我想要得到的结果就像

string result = $"Hi {name}, Are you from {country}";
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到这个?

c# string.format

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

如何在 Scala 中使用 String.format()

我是 Scala 世界的新手,我想使用 String.format() 创建日期格式字符串。我有三个整数值年月日,我想在 yyyy-mm-dd 中更改它。String.format() 需要一个 Anyref 数组,当我通过将整数值传递给它来创建 Array[Anyref] 时,它会抛出以下错误。

错误:(49, 30) 隐式转换的结果类型必须比 AnyRef dd(2) = inputCalendar.get(5) 更具体

我的完整示例是:

val dd = new Array[AnyRef](3);
dd(0) = Integer.valueOf(inputCalendar.get(1))
dd(1) = Integer.valueOf(inputCalendar.get(2) + 1)
dd(2) = inputCalendar.get(5)
println(String.format("%04d-%02d-%02d",dd))
Run Code Online (Sandbox Code Playgroud)

注意:我不想为此使用任何 Date API。

string.format scala date

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

String.Format不起作用

public override string ToString()
{
    string token = "something";
    foreach (something item in this)
    {
        something = something + "Some_Point({0},{1}),";
        string.Format(something, item.X, item.Y);
    }
    return something+= "anything";
}
Run Code Online (Sandbox Code Playgroud)

这是ToString()自定义集合的重写方法.这里的问题String.Format是不替换X和Y的值.每当我添加return之前它都会替换String.Format.我刚刚开始学习C#并且不知道是什么导致了这种奇怪的行为.

.net c# string.format

0
推荐指数
2
解决办法
138
查看次数

String.format在Razor中输出正确的语法

String.Format("args.{0} = '{1}'", dynaform.RequiredModelName, dynaform.RequiredModel)
Run Code Online (Sandbox Code Playgroud)

预期结果:

args.myVariable = 'someOtherStuff'
Run Code Online (Sandbox Code Playgroud)

实际结果:

args.myVariable = &#39;someOtherStuff&#39;
Run Code Online (Sandbox Code Playgroud)

第二次尝试:

Html.Raw(String.Format("args.{0} = '{1}'", dynaform.RequiredModelName, dynaform.RequiredModel))
Run Code Online (Sandbox Code Playgroud)

结果:

你调用的对象是空的.

我怎么能告诉String.Format输出'作为'和不作为&#39;?这是很无奈,而且由于现在,我必须避免的String.Format与交易时'"

c# string string.format razor

0
推荐指数
1
解决办法
2219
查看次数