检查字符串长度,并从一个(C#)中创建2个字符串?

时间:2011-05-13 07:42:18

标签: c# string

我有一个可以任意长度的字符串。现在我必须将这个字符串分成2个部分,2个部分中的每个部分必须只有35个长度。所以假设原始字符串的长度为50,这使得string1为35,string2为15。

如果原始字符串长度是< 35,string2应该保持空白。整个字符串解析的事情应该只在某种情况下发生(如果条件)。问题是,我怎么能尽可能地解决这个问题?

谢谢: - )

4 个答案:

答案 0 :(得分:3)

这样的东西?

string original = "12345678901234567890123456789012345678901234567890";
string first= "", second= "";

first = original.Substring(0, original.Length < 35 ? original.Length : 35);
if( original.Length > 35) second = original.Substring(35, original.Length < 70 ? original.Length - 35 : 35);

答案 1 :(得分:1)

这是这样做的最佳方式,因为字符串将被枚举两次,但代码很简单,所以如果性能不是问题,那么它可能是一个选项:

var part1 = new string(text.Take(35).ToArray());
var part2 = new string(text.Skip(35).Take(35).ToArray());

由于TakeSkip处理所有逻辑,这适用于少于35个字符,少于70个字符且长度超过70个字符的文本,没有任何其他逻辑。

答案 2 :(得分:0)

如果字符串大于35 x 2 = 70个字符,该怎么办?

string myString = "My long string...";
string firstString;
string secondString;
// if string length is more than 35 characters
if (myString.Length > 35)
{
    // getting first 35 characters
    firstString = myString.Substring(0, 35);
    // getting rest of the string
    secondString = myString.Substring(35);
}
else
{
    firstString = myString;
    secondString = string.Empty;
}

答案 3 :(得分:0)

SubString(int,int) - 第一个参数是子字符串的起始字符,第二个参数是字符数。

SubString(int) - 参数是子字符串的起始字符。

string aString = "Some string";
int length = aString.Length;
string partOne;
string partTwo;
partOne = aString.SubString(0
if(length > 35) {
  partOne = aString.SubString(0, 35);
  partTwo = astring.SubString(35);
} else {
  partOne = aString.SubString(0, length);
}