标签: string-formatting

返回要传递给string.format()的参数元组

目前,我正在尝试在Python中获取一个方法,以返回一个零个,一个或两个字符串的列表,以插入字符串格式化程序,然后将它们传递给字符串方法.我的代码看起来像这样:

class PairEvaluator(HandEvaluator):
  def returnArbitrary(self):
    return ('ace', 'king')

pe = PairEvaluator()
cards = pe.returnArbitrary()
print('Two pair, {0}s and {1}s'.format(cards))
Run Code Online (Sandbox Code Playgroud)

当我尝试运行此代码时,编译器会将IndexError:tuple索引超出范围.
我应该如何构造我的返回值以将其作为参数传递给.format()

python tuples string-formatting

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

C#日期格式化正在丢失斜杠分隔符

如果我在C#中这样做:

Console.WriteLine(DateTime.Now.ToString("ddd M/dd/yy"));
Run Code Online (Sandbox Code Playgroud)

我希望输出像这样:

Wed 6/15/11
Run Code Online (Sandbox Code Playgroud)

但它确实输出了这个:

Wed 6 15 11
Run Code Online (Sandbox Code Playgroud)

为什么斜线消失了?有没有办法防止这种情况,并以预期的格式输出日期?

c# datetime string-formatting

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

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万
查看次数

使用JavaScript获取字符串中的第一个整数

我在循环中有一个字符串,对于每个循环,它都填充了如下所示的文本:

"123 hello everybody 4"
"4567 stuff is fun 67"
"12368 more stuff"
Run Code Online (Sandbox Code Playgroud)

我只想检索字符串中文本的第一个数字,当然,我不知道长度.

提前致谢!

javascript string string-formatting

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

如何使用布尔变量格式化lua字符串?

我有一个布尔变量,其值我想在格式化的字符串中显示.我尝试使用string.format,但是对于语言参考中列出的任何格式选项选项,可以获得以下内容:

Lua 5.1.4  Copyright (C) 1994-2008 Lua.org, PUC-Rio
> print(string.format("%c\n", true))
stdin:1: bad argument #2 to 'format' (number expected, got boolean)
stack traceback:
    [C]: in function 'format'
    stdin:1: in main chunk
    [C]: ?
Run Code Online (Sandbox Code Playgroud)

我可以得到布尔通过增加显示tostring,

> print(string.format("%s\n", tostring(true)))
true
Run Code Online (Sandbox Code Playgroud)

但对于这个lua初学者来说,这似乎是间接的.有没有我忽略的格式化选项?或者我应该使用上述方法?别的什么?

lua string-formatting

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

将逗号分隔列表连接到逗号分隔并用单引号括起来

List<string> test = new List<string>();
test.Add("test's");
test.Add("test");
test.Add("test's more");
string s = string.Format("'{0}'", string.Join("','", test));
Run Code Online (Sandbox Code Playgroud)

现在s是,'test's','test','test's more' 但我需要用2个单引号替换内部引号

像这样: 'test''s','test','test''s more'

更新:我得到它如下工作,但我希望如果可能的话更清洁.

string s = string.Format("`{0}`", string.Join("`,`", test)).Replace("'", "''").Replace("`", "'");
Run Code Online (Sandbox Code Playgroud)

c# string string-formatting c#-4.0

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

Python:Logging TypeError:并非在字符串格式化过程中转换所有参数

这就是我在做的事情

>>> import logging
>>> logging.getLogger().setLevel(logging.INFO)
>>> from datetime import date
>>> date = date.today()
>>> logging.info('date={}', date)
Traceback (most recent call last):
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/logging/__init__.py", line 846, in emit
    msg = self.format(record)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/logging/__init__.py", line 723, in format
    return fmt.format(record)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/logging/__init__.py", line 464, in format
    record.message = record.getMessage()
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/logging/__init__.py", line 328, in getMessage
    msg = msg % self.args
TypeError: not all arguments converted during string formatting
Logged from file <stdin>, line 1
>>> 
Run Code Online (Sandbox Code Playgroud)

我的python版本是

$ python --version
Python …
Run Code Online (Sandbox Code Playgroud)

python logging string-formatting

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

Python中的!r和%r有什么区别?

正如标题所述,这两面旗帜有什么区别?看来他们都使用repr()将值转换为字符串?此外,在这行代码中:

"{0!r:20}".format("Hello")  
Run Code Online (Sandbox Code Playgroud)

!r前面的0是什么?

python string format string-formatting

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

跨平台/编译器一致的浮点数sprintf

我们有一个需要确定性的游戏,因为它是多人游戏模型的一部分.我们还使用Lua,它在sprintf内部使用(格式为%.14g).

打印数字如0.00001时会出现问题.在某些情况下,它会打印1e-05,在某些情况下,它会打印1e-005(额外为零).

例如,当使用Visual Studio 2015进行编译时,它会进行打印1e-005,并使用Visual Studio 2013进行打印1e-05.我尝试了不同的区域设置,但似乎没有任何效果.

问题是:实现确定性结果的最佳解决方案什么? 我不关心科学记谱法是否标准化或消除.

我想到的解决方案:

  • 当我使用%f符号时,它不会忽略无关紧要的零,因此%.14f会导致不切实际的长数.
  • 使用自定义sprintf方法(从某些标准库粘贴的副本)
  • 使用一些我没想过的特殊格式(我只使用它作为参考:http://www.cplusplus.com/reference/cstdio/printf/)

c++ lua printf string-formatting

32
推荐指数
2
解决办法
4301
查看次数

格式化字符串与串联

我看到很多人使用这样的格式字符串:

root = "sample"
output = "output"
path = "{}/{}".format(root, output)
Run Code Online (Sandbox Code Playgroud)

而不是简单地连接像这样的字符串:

path = root + '/' + output
Run Code Online (Sandbox Code Playgroud)

格式化字符串是否具有更好的性能还是仅适用于外观?

python string-formatting

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