Scala是否有内置的二进制数据格式化程序?
例如,打印输出:00000011表示Int值3.
写一个并不难 - 只是好奇它是否存在.
我正在尝试编写一个小脚本,它将自动化我需要编写的一些PHP样板.它应该将字符串的副本写入code输出文件,并为fields列表中的每个字典填写各种替换字段.
但是,我收到错误:
Traceback (most recent call last):
File "writefields.py", line 43, in <module>
formatted = code.format(**field)
ValueError: unexpected '{' in field name
Run Code Online (Sandbox Code Playgroud)
据我所知,替换领域或应该导致问题的决定没有额外的括号,所以任何帮助将不胜感激.
code = '''
// {label}
add_filter( 'submit_job_form_fields', 'frontend_add_{fieldname}_field' );
function frontend_add_{fieldname}_field($fields) {
$fields['job']['job_{fieldname}'] = array(
'label' => __('{label}', 'job_manager'),
'type' => 'text',
'required' => {required},
'priority' => 7,
'placeholder' => '{placeholder}'
);
return $fields;
}
add_filter( 'job_manager_job_listing_data_fields', 'admin_add_{fieldname}_field' );
function admin_add_{fieldname}_field( $fields ) {
$fields['_job_{fieldname}'] = array(
'label' => __( '{label}', 'job_manager' ), …Run Code Online (Sandbox Code Playgroud) 我已经阅读了很多专家F#,正在构建一个实际的应用程序.在调试时,我已经习惯于传递这样的fsi命令,以使repl窗口中的内容清晰可见:
fsi.AddPrinter(fun (x : myType) -> myType.ToString())
Run Code Online (Sandbox Code Playgroud)
我想扩展它以使用printf格式化程序,所以我可以输入例如
printf "%A" instanceOfMyType
Run Code Online (Sandbox Code Playgroud)
并控制自定义类型的输出.本书暗示可以做到这一点(第93页,"可以扩展通用结构格式以适用于任何用户定义的数据类型,F#网站上涵盖的主题"),但我没有找到任何关于如何实际上实现这一点.有谁知道怎么样?它甚至可能吗?
编辑:
我应该包含一个代码示例,它是我正在处理的记录类型,例如
type myType =
{a: int}
override m.ToString() = "hello"
let t = {a=5}
printfn "%A" t
printfn "%A" (box t)
Run Code Online (Sandbox Code Playgroud)
两个印刷语句产生:
{a = 5;}
Run Code Online (Sandbox Code Playgroud) 有没有办法从像@"xxx =%@,yyy =%@"和NSArray对象这样的格式字符串创建一个新的NSString?
在NSSTring类中有许多方法,如:
- (id)initWithFormat:(NSString *)format arguments:(va_list)argList
- (id)initWithFormat:(NSString *)format locale:(id)locale arguments:(va_list)argList
+ (id)stringWithFormat:(NSString *)format, ...
Run Code Online (Sandbox Code Playgroud)
但是没有它们将NSArray作为参数,我找不到从NSArray创建va_list的方法......
我有两个字符串.为了示例,它们设置如下:
string1="test toast"
string2="test test"
Run Code Online (Sandbox Code Playgroud)
我想要的是从字符串的开头找到重叠.对于重叠,我的意思是上面例子中的字符串"test t".
# So I look for the command
command "$string1" "$string2"
# that outputs:
"test t"
Run Code Online (Sandbox Code Playgroud)
如果字符串是,string1="atest toast"; string2="test test"它们将没有重叠,因为检查从开头开始,而"a"在开头string1.
我已经看到了这个答案,我想(如果C++ 11已经提出了一种本地更好的方法来连接和可能格式化字符串).
"更好"我的意思实际上是单行,就像在几乎所有更高级别的语言中一样(如果它支持像python的"格式化字符串"%(元组)语法这样的奖励点,但我想这真的是希望太多了).
理想的结果应该是这样的:
my_func("bla bla bla" << int(my_int) << "bla bla bla");
Run Code Online (Sandbox Code Playgroud)
答案中列出的唯一几乎不可接受的方法是快速格式化的方法,但我想知道C++ 11是否能够做得更好.
我正在学习将我的应用本地化为简体中文.我正在按照本教程了解如何执行此操作.
因为本教程基于Obj-C,所以格式化的字符串可以这样写:
"Yesterday you sold %@ apps" = "Ayer le vendió %@ aplicaciones";
Run Code Online (Sandbox Code Playgroud)
"你喜欢?" ="~Es bueno?〜";
但我正在使用Swift.在Swift中,我认为你不能%@用来表明那里有东西可以放置.我们有字符串插值吗?
我的应用程序与数学有关.我想显示哪些输入用于计算表格视图单元格的详细标签中的结果.例如
--------------
1234.5678
From x, y <---- Here is the detailed label
--------------
Run Code Online (Sandbox Code Playgroud)
这里,From x, y表示"结果是从x和y计算的".我想把它翻译成中文:
? x, y ??
Run Code Online (Sandbox Code Playgroud)
之前,我可以使用这个:
"From \(someVariable)"
Run Code Online (Sandbox Code Playgroud)
与字符串文件:
"From" = "? ??";
Run Code Online (Sandbox Code Playgroud)
这就是我在代码中使用它的方式
"\(NSLocalizedString("From", comment: "")) \(someVariable)"
Run Code Online (Sandbox Code Playgroud)
但如果在中文版本中使用它,最终的字符串将是这样的:
"? ?? x, y"
Run Code Online (Sandbox Code Playgroud)
我的意思是我可以把?和??在字符串文件两个不同的条目.但有更好的方法吗?
我试图用前导零和尾随零来表示一个数字,以便总宽度为7,包括小数点.例如,我想将"5"表示为"005.000".似乎字符串格式化将让我做一个或另一个但不是两个.这是我在Ipython中得到的输出,说明了我的问题:
In [1]: '%.3f'%5
Out[1]: '5.000'
In [2]: '%03.f'%5
Out[2]: '005'
In [3]: '%03.3f'%5
Out[3]: '5.000'
Run Code Online (Sandbox Code Playgroud)
第1行和第2行完全符合我的预期.第3行只是忽略了我想要前导零的事实.有任何想法吗?谢谢!
我想一个转换BigDecimal到String印刷的目的,但打印出所有的数字没有科学记数法.例如:
BigDecimal d = BigDecimal.valueOf(12334535345456700.12345634534534578901);
String out = d.toString(); // Or perform any formatting that needs to be done
System.out.println(out);
Run Code Online (Sandbox Code Playgroud)
我想要12334535345456700.12345634534534578901打印.现在我得到:1.23345353454567E+16.
如果我用Python写:
data = {'n': 3, 'k': 3.141594, 'p': {'a': 7, 'b': 8}}
print('{n}, {k:.2f}, {p[a]}, {p[b]}'.format(**data))
del data['k']
data['p']['b'] = None
print('{n}, {k:.2f}, {p[a]}, {p[b]}'.format(**data))
Run Code Online (Sandbox Code Playgroud)
我明白了:
3, 3.14, 7, 8
Traceback (most recent call last):
File "./funky.py", line 186, in <module>
print('{n}, {k:.2f}, {p[a]}, {p[b]}'.format(**data))
KeyError: 'k'
Run Code Online (Sandbox Code Playgroud)
而不是错误消息,我如何让Python更优雅地格式化None和不存在的字段?
举个例子,我想在输出中看到更像:
3, 3.14, 7, 8
3, ~, 7, ~
Run Code Online (Sandbox Code Playgroud)
当然,理想情况下,我希望能够指定使用的字符串而不是那些缺少的值.
python ×3
bash ×1
bigdecimal ×1
c++ ×1
c++11 ×1
cocoa ×1
f# ×1
ios ×1
java ×1
missing-data ×1
nsarray ×1
nsstring ×1
objective-c ×1
printf ×1
python-3.x ×1
scala ×1
string ×1
swift ×1