1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | using System; public class PluralFormatter : IFormatProvider, ICustomFormatter { public object GetFormat(Type formatType) { if (formatType == typeof(ICustomFormatter)) return this; else return null; } public string Format(string format, object arg, IFormatProvider formatProvider) { if (! formatProvider.Equals(this)) return null; if (! format.StartsWith("^")) return null; String[] parts = format.Split(new char[] {'^'}); int choice = ((int) arg) == 1 ? 1 : 2; return String.Format("{0} {1}", arg, parts[choice]); } public static void Main() { Console.WriteLine(String.Format( new PluralFormatter(), "{0:^puppy^puppies}, {1:^child^children}, and {2:^kitten^kittens}", 13, 1, 42 )); } } |
dXNpbmcgU3lzdGVtOwoKcHVibGljIGNsYXNzIFBsdXJhbEZvcm1hdHRlciA6IElGb3JtYXRQcm92aWRlciwgSUN1c3RvbUZvcm1hdHRlciB7CgogICBwdWJsaWMgb2JqZWN0IEdldEZvcm1hdChUeXBlIGZvcm1hdFR5cGUpIHsKICAgICAgaWYgKGZvcm1hdFR5cGUgPT0gdHlwZW9mKElDdXN0b21Gb3JtYXR0ZXIpKQogICAgICAgICByZXR1cm4gdGhpczsKICAgICAgZWxzZQogICAgICAgICByZXR1cm4gbnVsbDsKICAgfQoKICAgcHVibGljIHN0cmluZyBGb3JtYXQoc3RyaW5nIGZvcm1hdCwgb2JqZWN0IGFyZywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgSUZvcm1hdFByb3ZpZGVyIGZvcm1hdFByb3ZpZGVyKQogICB7ICAgCiAgICAgIGlmICghIGZvcm1hdFByb3ZpZGVyLkVxdWFscyh0aGlzKSkgcmV0dXJuIG51bGw7CgogICAgICBpZiAoISBmb3JtYXQuU3RhcnRzV2l0aCgiXiIpKSByZXR1cm4gbnVsbDsKCiAgICAgIFN0cmluZ1tdIHBhcnRzID0gZm9ybWF0LlNwbGl0KG5ldyBjaGFyW10geydeJ30pOwogICAgICBpbnQgY2hvaWNlID0gKChpbnQpIGFyZykgPT0gMSA/IDEgOiAyOwogICAgICByZXR1cm4gU3RyaW5nLkZvcm1hdCgiezB9IHsxfSIsIGFyZywgcGFydHNbY2hvaWNlXSk7CiAgIH0KCiAgIHB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkgewogICAgICBDb25zb2xlLldyaXRlTGluZShTdHJpbmcuRm9ybWF0KAogICAgICAgICBuZXcgUGx1cmFsRm9ybWF0dGVyKCksCiAgICAgICAgICJ7MDpecHVwcHlecHVwcGllc30sIHsxOl5jaGlsZF5jaGlsZHJlbn0sIGFuZCB7Mjpea2l0dGVuXmtpdHRlbnN9IiwgCiAgICAgICAgIDEzLCAxLCA0MgogICAgICApKTsKICAgfQp9
-
upload with new input
-
result: Success time: 0.11s memory: 13584 kB returned value: 0
13 puppies, 1 child, and 42 kittens


