零数量忽略多个定义

我使用复数来编译Android应用程序的数量字符串。 我完全按照教程中的内容进行操作:

res.getQuantityString( R.plurals.number_of_comments, commentsCount, commentsCount); 

这是复数的定义:

    No comments One comment %d comments   

有趣的是,输出字符串与我所定义的一样奇怪:

 commentsCount = 0 => "0 comments" commentsCount = 1 => "One comment" commentsCount = 2 => "2 comments" 

我想这是因为文档声明When the language requires special treatment of the number 0 (as in Arabic). zero数量。 有没有办法强迫我的定义?

    根据文件 :

    选择使用哪个字符串完全基于语法必要性。 在英语中,即使数量为0,也会忽略零字符串,因为0在语法上与2不相同,或者除了1以外的任何其他数字(“零书”,“一本书”,“两本书”和等等)。

    如果您仍希望将自定义字符串用于零,则可以在数量为零时加载其他字符串:

     if (commentsCount == 0) str = res.getString(R.string.number_of_comments_zero); else str = res.getQuantityString(R.plurals.number_of_comments, commentsCount, commentsCount); 

    Plural是Unicode格式。 所有的复数值都在这里 。 在英语中,复数为零,如2,3,4,所以你必须如果这个值使用其他字符串。