C# 拆分并用字符替换字符串
我需要提取特殊字符C# 拆分并用字符替换字符串,c#,split,C#,Split,我需要提取特殊字符和之间的值 string text = "&2&LL&1&likk&3&"; 我需要提取值2,1,3,并插入列表的相应索引 该列表包含10个元素: 0 - A 1 - B 2 - C 3 - D ... 9 - J 最后,当我将list元素替换为字符串时,它应该打印为CLLBlikkD。我该怎么做 我尝试按如下方式进行拆分:但是,它仅使用&符号进行拆分 string[] xx = text.Split('&'); 试
和之间的值
string text = "&2&LL&1&likk&3&";
我需要提取值2,1,3
,并插入列表的相应索引
该列表包含10个元素:
0 - A
1 - B
2 - C
3 - D
...
9 - J
最后,当我将list元素替换为字符串时,它应该打印为CLLBlikkD。我该怎么做
我尝试按如下方式进行拆分:但是,它仅使用&符号进行拆分
string[] xx = text.Split('&');
试试这个:
List<string> f = new List<string> ( ) { "A", "B", "C", "D", "E", "F", "G" };
string text = "&2&LL&1&likk&3&";
for ( int i = 0; i < f.Count; i++ )
{
text = text.Replace ( i.ToString ( ), f[ i ] );
}
text=text.Replace ( "&", "" );
Console.WriteLine ( text );
listf=新列表(){“A”、“B”、“C”、“D”、“E”、“f”、“G”};
字符串文本=“&2&LL&1&likk&3&”;
对于(int i=0;i
用“FOR”遍历列表中的所有值,并用要替换的值重新指定文本的值
已编辑
List<string> f = new List<string> ( ) { "A", "B", "C", "D", "E", "F", "G" };
string text = "&2&LL&1&likk&3&";
for ( int i = 0; i < f.Count; i++ )
{
text = text.Replace ($"&{ i.ToString ( )}&", f[ i ] );
}
Console.WriteLine ( text );
listf=新列表(){“A”、“B”、“C”、“D”、“E”、“f”、“G”};
字符串文本=“&2&LL&1&likk&3&”;
对于(int i=0;i
嗨,你可以试试这样的东西
string text = "&2&LL&1&likk&3&";
string[] xx = text.Split('&');
string text2 = "";
string[] abc = { "A","B","C","D","E","F","G","H","I","J" };
for (int i = 0; i < xx.Length; i++)
{
text2 += xx[i];
}
for (int i = 0; i < abc.Length; i++)
{
text2 = text2.Replace(""+i, abc[i]);
}
MessageBox.Show(text2);
string text=“&2&LL&1&likk&3&”;
字符串[]xx=text.Split('&');
字符串text2=“”;
字符串[]abc={“A”、“B”、“C”、“D”、“E”、“F”、“G”、“H”、“I”、“J”};
对于(int i=0;i
您应该使用正则表达式来实现这一点,因为正则表达式很有趣
&\d&将匹配符号之间的所有数字。考虑到你暗示字母和数字应该映射在一起,我们可以采用Henocs答案来使用正则表达式获得加分
List<string> f = new List<string> ( ) { "A", "B", "C", "D", "E", "F", "G" };
string text = "&2&LL&1&likk&3&";
for ( int i = 0; i < f.Count; i++ )
{
text = text.RegexReplace ( text, "&" + i + "&", f[ i ] );
}
Console.WriteLine ( text );
listf=新列表(){“A”、“B”、“C”、“D”、“E”、“f”、“G”};
字符串文本=“&2&LL&1&likk&3&”;
对于(int i=0;i
通过创建一个&(目标数字)&的正则表达式,并用字符串列表中的一个字母替换它,我们将替换整个块,而不仅仅是数字。正则表达式替代方案(17是与'a'-'0'的区别):
你不能做一个简单的循环,替换&i&
其中i
是循环的索引吗?请检查答案的版本,列表中的索引值替换了&++&这是一个很好的答案,但它对大于9的数字有效吗?
var result = Regex.Replace("&2&LL&1&likk&3&", "&[0-9]&", m => (char)(m.Value[1] + 17) + "");