我没有太多使用C++的经验.相反,我在C#中工作得更多,所以,我想问一下我在那里会做些什么.我必须生成一个特定的字符串格式,我必须传递给另一个函数.在C#中,我可以通过以下简单代码轻松生成字符串.
string a = "test";
string b = "text.txt";
string c = "text1.txt";
String.Format("{0} {1} > {2}", a, b, c);
Run Code Online (Sandbox Code Playgroud)
通过生成这样一个上面的字符串,我应该能够通过它system().但是,system只接受char*
我在Win32 C++(不是C++/CLI),并且不能使用,boost因为它包含太多包含项目本身非常小的所有文件.喜欢的东西,sprintf()在我看来是有用的,但sprintf不接受string的a,b和c参数.有什么建议我如何生成这些格式化的字符串以传递给我的程序中的系统?
该java.util.Date toString()方法显示本地时区的日期.
有几种常见的情况我们希望以UTC格式打印数据,包括日志,数据导出和与外部程序的通信.
java.util.Date在UTC中创建字符串表示形式的最佳方法是什么?toString()格式替换juDate的格式,这是不可排序的(谢谢@JonSkeet!)?我认为以自定义格式和时区打印日期的标准方法非常繁琐:
final Date date = new Date();
final String ISO_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSS zzz";
final SimpleDateFormat sdf = new SimpleDateFormat(ISO_FORMAT);
final TimeZone utc = TimeZone.getTimeZone("UTC");
sdf.setTimeZone(utc);
System.out.println(sdf.format(date));
Run Code Online (Sandbox Code Playgroud)
我正在寻找一个单线像:
System.out.println(prettyPrint(date, "yyyy-MM-dd'T'HH:mm:ss.SSS zzz", "UTC"));
Run Code Online (Sandbox Code Playgroud) 我有形式的字符串Version 1.4.0\n和Version 1.15.6\n,我想从他们身上抽取三个数字的简单方法.我知道我可以使用format方法将变量放入字符串中; 我基本上想要倒退,像这样:
# So I know I can do this:
x, y, z = 1, 4, 0
print 'Version {0}.{1}.{2}\n'.format(x,y,z)
# Output is 'Version 1.4.0\n'
# But I'd like to be able to reverse it:
mystr='Version 1.15.6\n'
a, b, c = mystr.unformat('Version {0}.{1}.{2}\n')
# And have the result that a, b, c = 1, 15, 6
Run Code Online (Sandbox Code Playgroud)
我找到的其他人问了同样的问题,但回复是针对他们的特定情况的: 反向使用Python格式字符串进行解析
一般答案(如何format()反向)会很棒!我的具体案例的答案也会非常有用.
Java中有两个占位符转换为String:
%s - 按原样转换为String%S - 转换为大写字符串.因此,给出:
String result = String.format(template, "Hi James!");
Run Code Online (Sandbox Code Playgroud)
"%s",结果将是"Hi James!""%S",结果将是 "HI JAMES!"题:
通常,有没有办法只使用Java的格式转换语法将参数转换为小写字符串?(换句话说,在不使用toLowerCase().)
具体地说,是有任何可能的值template,使得其结果将是"hi james!"?
假设我有一个char* str = "0123456789"并且我想要剪切第一个和最后三个字母并打印中间,这是最简单,最安全的方法吗?
现在的诀窍:要切割的部分和要打印的部分是可变大小的,所以我可以有一个非常长的char*,或者非常小的char*.
我正在尝试使用Label控件在XAML中显示一个字符串.以下是我的XAML代码:
<Label Height="28" HorizontalAlignment="Left" Margin="233,68,0,0" Name="label13" VerticalAlignment="Top">
<Label.Content>
<MultiBinding StringFormat="{}{0} x {1}">
<Binding Path="Width" />
<Binding Path="Height" />
</MultiBinding>
</Label.Content>
Run Code Online (Sandbox Code Playgroud)
宽度和高度是我的类Movie的两个属性.我希望标签显示:"宽度x高度"ex.800 x 640但标签控件仍为空.任何帮助表示赞赏.我想在不使用转换器的情况下做这件事.
我使用TextBlock而不是Label修改了我的xaml.但它仍然不会填充显示输出.
<TextBlock Height="28" HorizontalAlignment="Left" Margin="233,68,0,0" Name="label13" VerticalAlignment="Top">
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} x {1}">
<Binding Path="Width" />
<Binding Path="Height" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
Run Code Online (Sandbox Code Playgroud) 我用double(小数)得到了这个问题.
当double = 1.234567然后我用,String.format("%.3f", myString);
所以结果是1.234
但当我的双倍是10
结果将是10,000
我希望这是10
他们是否可以说他只需要在"有用"时显示小数?
我看到一些关于这个的帖子,但那是php或c#,找不到关于android/java的东西(也许我看起来不太好).
希望你们能帮我解决这个问题.
编辑,现在我使用这样的东西:myString.replace(",000", "");
但我认为他们是一个更"友好"的代码.
我想{$100.00}使用带有的string.Format(fmt, x)语句在大括号(示例)中输出格式化的数字x=100.
{
var x = 100M;
// works fine without a format specifier
string.Format("{{{0}}}", x); // "{100.00}"
// fails with a format specifier
string.Format("{{{0:C}}}", x); // "{C}"
// works with spaces
string.Format("{{ {0:C} }}", x); // "{ $100.00 }"
}
Run Code Online (Sandbox Code Playgroud)
那么我应该使用上面的格式字符串来获得{$100}不使用笨重的解决方案,例如string.Format("{0}{1:C}{2}", "{", x, "}");
一旦用户开始在这种格式类型中输入电话号码,我就会格式化我的文本文本,0 (555) 444 66 77并且它工作正常但是一旦我从服务器获得号码,我就这样得到它05554446677所以请你告诉我如何编辑它一旦我从服务器上获取相同的格式?
我开始输入后的代码:
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
if textField == phoneNumberTextField{
var newString = (textField.text as NSString).stringByReplacingCharactersInRange(range, withString: string)
var components = newString.componentsSeparatedByCharactersInSet(NSCharacterSet.decimalDigitCharacterSet().invertedSet)
var decimalString = "".join(components) as NSString
var length = decimalString.length
var hasLeadingOne = length > 0 && decimalString.characterAtIndex(0) == (1 as unichar)
if length == 0 || (length > 11 && !hasLeadingOne) || length > 12{
var newLength = (textField.text as NSString).length …Run Code Online (Sandbox Code Playgroud) '=' alignment以下错误消息中的含义是什么,为什么此代码会导致错误消息?
>>> "{num:03}".format(num="1")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: '=' alignment not allowed in string format specifier
Run Code Online (Sandbox Code Playgroud)
代码有一个微妙的问题:输入值"1"是文本,而不是数字.但错误消息似乎与此无关.
错误消息中没有任何内容表明为什么"'='alignment"是相关的,并且它不会出现在代码中.那么发出错误信息的意义是什么?