C# 从C中的字符串中删除中间子字符串#
我在练习C# 我想从char数组中删除中间的子字符串,并将其添加到fornt中 示例1 char array=“Fbh3dfbn8” 子字符串3到7在开头被删除和添加: char array=“3dfbhbn8” 示例2 字符数组=E5SS6SkGDE 子字符串4到7在开头被删除和添加: 字符数组=S6SkE5SGDE 基本上我想把字符串分成3部分,其中第1和第3个子字符串的长度相同C# 从C中的字符串中删除中间子字符串#,c#,C#,我在练习C# 我想从char数组中删除中间的子字符串,并将其添加到fornt中 示例1 char array=“Fbh3dfbn8” 子字符串3到7在开头被删除和添加: char array=“3dfbhbn8” 示例2 字符数组=E5SS6SkGDE 子字符串4到7在开头被删除和添加: 字符数组=S6SkE5SGDE 基本上我想把字符串分成3部分,其中第1和第3个子字符串的长度相同 if (charArray.ToString().Length % 2 != 0 && char
if (charArray.ToString().Length % 2 != 0 && charArray.ToString().Length >= 3)
{
string subStringCharArray = charArray.ToString().Substring(charArray.ToString().Length / 2 - 1, 3);
charArray.ToString().IndexOf(subStringCharArray);
string changedString = subStringCharArray + charArray.ToString();
}
这是我的密码。在点stringsubStringCharArray
内if
条件下,我总是得到m.C作为输出。但我的Char数组中没有m.C`
有谁能帮我或指导我做这个方法吗
感谢使用新字符串(charArray)
代替charArray.ToString()
charArray.ToString()
将不是“abc”字符串。对于任何可能的数组,它都将是“System.Char[]”
也
不会更改数组或字符串中的任何内容。它只返回子字符串编号的索引。它不会修改任何内容
您可以尝试以下方法:
Char[] charArray = new Char[] { '1', '2', '3', '4', '5', '6', '7' };
String charArrayAsString = new String(charArray);
String result = null;
if (((charArrayAsString.Length % 2) != 0) &&
(charArrayAsString.Length >= 3))
{
Int32 middleBegins = charArrayAsString.Length / 2 - 1;
Int32 middleLen = 3;
result = charArrayAsString.Substring(middleBegins, middleLen) +
charArrayAsString.Substring(0, middleBegins) +
charArrayAsString.Substring(middleBegins + middleLen);
}
Console.WriteLine(result);
除以3:
string str1 = "Fbh3dfbn8";
int partLength = str1.Length / 3;
string result = string.Format("{0}{1}{2}",
str1.Substring(partLength, str1.Length - (2 * partLength)),
str1.Remove(partLength),
str1.Substring(str1.Length - partLength));
如果您坚持使用char[]
,则通过构造函数从char[]
获取字符串或通过string返回char[]
非常容易。ToCharray
尝试以下方法:
string input = "E5SS6SkGDE";
char[] array = input.ToCharArray();
var result =
array.Skip(3).Take(4)
.Concat(array.Take(3))
.Concat(array.Skip(7))
.ToArray();
var output = new string(result);
我得到的结果是S6SkE5SGDE
string str1 = "Fbh3dfbn8";
int partLength = str1.Length / 3;
string result = string.Format("{0}{1}{2}",
str1.Substring(partLength, str1.Length - (2 * partLength)),
str1.Remove(partLength),
str1.Substring(str1.Length - partLength));
string input = "E5SS6SkGDE";
char[] array = input.ToCharArray();
var result =
array.Skip(3).Take(4)
.Concat(array.Take(3))
.Concat(array.Skip(7))
.ToArray();
var output = new string(result);