我有一个字符串。它看起来像:
data =“DA00VB0012004500890044010000000700000004000000 010000001 0000”;
data =“DA00NM0012002700890032010000000700000004000000 1A000001A 0000”;
我需要拆分并修改该字符串。
这是我的代码:
public string Getstring(string value, int start = 47, int end = 54)
{
string spstart = string.Empty;
string spend = string.Empty;
start = start - 1;
end = end + 1;
if (value != string.Empty)
{
var mem = value.Substring(start, end - start);
spstart = mem.Substring(0, 2);
spend = mem.Substring(mem.Length - 2, 2);
}
if(spstart.Trim().Equals(spend.Trim())
{
return mem;
}
return "not found";
}
这是我得到的结果:
为第一个字符串
01 00000的 01
第二个
1A 00000的 1A
您可以看到相同的开头和结尾:01 01或1A 1A。
我想得到的最终结果:
01 00000 01 - >的 0C 00000的 0C
1A 00000 1A - >的 0C 00000的 0C
data =“DA00VB0012004500890044010000000700000004000000 0C 00000 0C 0000”;
我想替换字符串的开头和结尾。 然后用 0C 00000替换字符串中的 01 00000 01 或 1A 00000 1A 的 0C
我正在寻找一种更短的方式来获取Getstring并得到我想要的东西。 我正在看看Linq和Regex.Again。 我仔细阅读了他们。 我不会删除这个话题。如果有任何解决的想法,我会投票。 感谢所有的帮助。
答案 0 :(得分:1)
在你的评论中我不确定你的意思我有多少种方式 ???下面是你如何更换你描述的字符串。因为你的问题是一个非常简单的字符串替换问题,所以给每个人一个你想要完成的事情的一般理想可能会更好。替换下面显示的字符串。
String s1 = "010000001";
String s2 = "1A000001A";
String s3 = s1.Replace("01", "0C");
String s4 = s2.Replace("1A", "15");
Console.WriteLine(s1 + " -> " + s3 + "\n\r" + s2 + " -> " + s4);
Console.ReadKey();