我想编写一个将CamelCase转换为人类可读名称的方法.
这是测试用例:
public void testSplitCamelCase() {
assertEquals("lowercase", splitCamelCase("lowercase"));
assertEquals("Class", splitCamelCase("Class"));
assertEquals("My Class", splitCamelCase("MyClass"));
assertEquals("HTML", splitCamelCase("HTML"));
assertEquals("PDF Loader", splitCamelCase("PDFLoader"));
assertEquals("A String", splitCamelCase("AString"));
assertEquals("Simple XML Parser", splitCamelCase("SimpleXMLParser"));
assertEquals("GL 11 Version", splitCamelCase("GL11Version"));
}
Run Code Online (Sandbox Code Playgroud) 我可以编写自己的算法来做到这一点,但我觉得在C#中应该有相当于ruby的人性化.
我用Google搜索,但只找到了将日期人性化的方法.
例子:
我想用一种方法在Python中显示日期项目的自然时间.类似于Twitter将如何显示"片刻之前","几分钟前","两小时前","三天前"等消息.
Django 1.0在django.contrib中有一个"humanize"方法.我没有使用Django框架,即使我是,它比我想要的更有限.
请让我(以及几代未来的搜索者)知道是否已经有一个好的工作解决方案.由于这是一个很常见的任务,我想必须有一些东西.
我想以人性化的方式在C#中打印我的小数字,例如:
30µ
for 3E-5
或456.789n
for 0.000000456789
.
我知道C中的BSD 的Humanize_number()函数,但只与bit int兼容,而不是浮点数和双精度数.在C#中有相同的支持吗?
此外,它在显示数字时应保持一定的精度,例如:
0.003596
应显示为3.596µ
,而不是3.6µ
(或更糟4µ
).
这里可能的答案是:使用.NET格式化大数字但适用于负数log10会将数字截断为逗号后的1位数.在我看来,这还远未完成.
我想如何呈现东西的例子:
3000 3K
3300 3.3K
3333 3.333K
30000 30k
300000 300k
3000000 3M
3000003 3.000003M // or 3M if I specify "4 digits precision"
0.253 253m
0.0253 25.3m
0.00253 2.53m
-0.253003 -253.003m
Run Code Online (Sandbox Code Playgroud)
我无法在SO中提出我的问题以找到相关的答案,所以如果问题已经得到解答,请开火!
当我这样做:
{% load humanize %}
{{ video.pub_date|naturaltime|capfirst }}
Run Code Online (Sandbox Code Playgroud)
我明白了 2 days, 19 hours ago
如何在没有时间的情况下获得2天.基本上如果视频是在不到一天前发布的,那么它应该在X小时前说出来,那么它应该计算在X天之前的几天,然后是几周.我只是不想1小时5分钟前或2天13分钟前.只是第一部分.
我查看了人性化的文档但找不到我需要的东西.
我要求将像4,316,000这样的大数字格式化为"4.3m".
我怎么能在C#中做到这一点?
我正在使用Ruby 1.9.3和Rails 3.0.9构建应用程序
我有一个类似下面的课程.
module CDA
class Document
def humanize_class_name
self.class.name.gsub("::","")
end
end
end
Run Code Online (Sandbox Code Playgroud)
我想要类名"CDADocument".
我的humanize_class_name方法是否是实现此目的的正确方法?
要么
Rails提供的任何其他内置方法?
我正在尝试使用此函数在 JS 中计算剩余时间(例如:从今天(2014/03/02)算起的 10 年、2 个月和 10 天:
var d2 = new Date(2024, 3, 12);
var d1 = new Date();
var d0 = new Date(1970, 0, 1);
var diff = new Date(d2.getTime() - (d1.getTime() + d0.getTime() ) );
var years = diff.getFullYear();
var months = diff.getMonth();
var days = diff.getDay();
alert("remaining time = " + years + " years, " + months + " months, " + days + " days.");
Run Code Online (Sandbox Code Playgroud)
但是,我得到了 1980 年的差异,而不是 10 年的差异(尽管我理解的天数差异购买了以月和年为单位的天数变化):
是否可以使用此策略执行此“剩余时间”操作?如果是这样,如何得到预期的结果?
这里是 JS shell …
我如何将字符串人性化?基于以下标准:
- 删除前导下划线(如果有).
- 如果有的话,用空格替换下划线.
- 资本化第一个词.
例如:
this is a test -> This is a test
foo Bar Baz -> Foo bar baz
foo_bar -> Foo bar
foo_bar_baz -> Foo bar baz
foo-bar -> Foo-bar
fooBarBaz -> FooBarBaz
Run Code Online (Sandbox Code Playgroud) 是否有“逆转人性化”时代的功能?
例如,给定(字符串):
可以返回(为伪代码道歉):
我想了解更多有关限制仅限人类注册网站的解决方案。
Captcha 似乎是一个合适的解决方案,但事实证明它并不像听起来那么好。如果一个解决方案不是盲人、聋人等的选择,那也不是问题。
我想使用django.contrib.humanize
模板的外部,实际上是在模型内部,将某些短信中的某些日期人性化。
是否可以?我怎样才能做到这一点?
humanize ×12
python ×4
c# ×3
datetime ×3
javascript ×3
string ×3
django ×2
numbers ×2
.net ×1
camelcasing ×1
date ×1
formatting ×1
java ×1
regex ×1
registration ×1
ruby ×1
security ×1
time ×1