-3

我有 2 个字符串。我想组合这两个字符串,只要组合字符串的字符数为 20 或更少。如果组合长度大于 20,我想截断第一个字符串,直到组合长度为 20。第二个字符串永远不会超过 2 个字符。

这很容易做到。但是,我正在寻找简短、优雅的代码。

4

5 回答 5

4
string s1 = "some_string";
string s2 = "AB";

string s3 = s1.Substring(0, Math.Min(s1.Length, 20 - s2.Length)) + s2;
于 2012-11-02T15:29:29.553 回答
1

有几个扩展方法:

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);
于 2012-11-02T15:29:02.507 回答
0
        string s1 = "12341324";
        string s2 = "jksand9n3";
        string combined = s1.Length+s2.Length >20 ? s1.Substring(0, 20 - s2.Length) + s2 : s1+s2;
于 2012-11-02T15:29:59.377 回答
0
string str = (str1.Length + str2.Length > 20) ? 
(str1.Substring(0, 20-str2.Length) + str2) : 
(str1 + str2)
于 2012-11-02T15:28:40.817 回答
0
string s3 = s1.Length + s2.Length <= 20 ? s1 + s2 : s1.Remove(20 - s2.Length) + s2;
于 2012-11-02T15:31:51.843 回答