Java 在通用语言中处理单数/复数单词是否只有一行?

Java 在通用语言中处理单数/复数单词是否只有一行?,java,python,localization,plural,singular,Java,Python,Localization,Plural,Singular,我经常看到网站做一些事情,比如1次浏览,1天剩余,或者1个答案。对我来说,这只是懒惰,因为它通常很容易修复,就像: if(views == 1) print views + " view" else print views + " views" 我想知道的是,在java、python、php等公共语言中是否有一行程序,我可以在这样做的网站上发表评论,并说,这就像将它添加到代码中一样简单。这可能吗?我在我的网站上处理这一问题时使用。看起来许多基于c的编程语言都支持三元运算符。这在php中非

我经常看到网站做一些事情,比如1次浏览,1天剩余,或者1个答案。对我来说,这只是懒惰,因为它通常很容易修复,就像:

if(views == 1)
   print views + " view"
else print views + " views"
我想知道的是,在java、python、php等公共语言中是否有一行程序,我可以在这样做的网站上发表评论,并说,这就像将它添加到代码中一样简单。这可能吗?

我在我的网站上处理这一问题时使用。看起来许多基于c的编程语言都支持三元运算符。这在php中非常简单:

<?= $views . ' view' . ($views == 1 ? '' : 's'); ?>

您可以使用条件或三元运算符来处理问题,但从不同的角度来看,我们通常以以下方式显示复数/单数单词

1 view(s), 1 day(s) left, or 1 answer(s)  
当添加条件可能不简单时,这通常很有用,例如作为输入字段

至于Python,您可以创建一个函数来执行重复的任务,即比较和添加额外的“s”

>>> def pluralize(n, text):
    return "{} {}{}".format(n,text, 's' if n > 1 else '')

>>> pluralize(3,'word')
'3 words'
>>> pluralize(1,'word')
'1 word'
如果您使用的是django(python),则可以使用过滤器:

它还支持特殊情况。看一看这张照片

如果您想在普通python代码中执行类似的操作,请查看该模块。它看起来非常强大,显然能正确地猜出大多数复数:

import inflect
p = inflect.engine()
print("You have {}.".format(p.no('message',num_messages)))
哪个输出字符串像

You have no messages.
You have 1 message.
You have 34 messages.

对于Java:
System.out.println(numAnswers+“answer”+(numAnswers==1?”:“s”)其中
numAnswers
是一个
int
值,当然,它包含有多少个答案。@asteri我会将其作为独立答案重新发布。它非常有用。
You have no messages.
You have 1 message.
You have 34 messages.