我有 2 个字符串。我想组合这两个字符串,只要组合字符串的字符数为 20 或更少。如果组合长度大于 20,我想截断第一个字符串,直到组合长度为 20。第二个字符串永远不会超过 2 个字符。
这很容易做到。但是,我正在寻找简短、优雅的代码。
string s1 = "some_string";
string s2 = "AB";
string s3 = s1.Substring(0, Math.Min(s1.Length, 20 - s2.Length)) + s2;
有几个扩展方法:
public static string Truncate(this string value, int len) {
if (value.Length <= len) {
return value;
}
return value.Substring(0, len);
}
public static string Combine(this string first, string second, int maxLen) {
return first.Truncate(maxLen - second.Length) + second;
}
然后你可以这样称呼它
str1.Combine("xx", 20);
string s1 = "12341324";
string s2 = "jksand9n3";
string combined = s1.Length+s2.Length >20 ? s1.Substring(0, 20 - s2.Length) + s2 : s1+s2;
string str = (str1.Length + str2.Length > 20) ?
(str1.Substring(0, 20-str2.Length) + str2) :
(str1 + str2)
string s3 = s1.Length + s2.Length <= 20 ? s1 + s2 : s1.Remove(20 - s2.Length) + s2;