在我的游戏中,我有玩家所穿衣服的身分代码,例如...
hd-185-1.ch-235-1408.lg-3116-85-1408.ha-1002-1408.sh-3115-1408-1408.ca-1805-64.
hd-185-12.ch-235-1408.lg-3116-85-1408.ha-1002-1408.sh-3115-1408-1408.ca-1805-64.
hr-165-52.hd-205-30.ca-1802-63.wa-2012-1408.lg-270-63.ha-3655-0.ch-806-1412.sh-305-110.he-1601-0
hd代表头,ha代表头发,sh代表鞋子,lg代表腿,等等。.我正在尝试通过替换部分字符串来替换球员露面的肤色...
这是我尝试过的...
public string GetHead()
{
return FigureCode.Split('.').FirstOrDefault(x => x.StartsWith("hd"));
}
public void UpdateSkin(string skinCode)
{
var headPart = GetHead();
if (string.IsNullOrEmpty(headPart))
{
return;
}
var skin = headPart.Split('-')[2];
FigureCode = FigureCode.Replace(headPart, headPart.Replace(skin, skinCode));
}
这可以与该问题的第一个数字代码示例(IE hd-185-1.ch-235-1408.lg-3116-85-1408.ha-1002-1408.sh-3115-1408-1408.ca-1805-64.
)一起使用,但其余的都弄乱了,有人可以理解为什么吗?我做错什么了吗,替换了重复的ID?
数字代码可以是每个用户通常具有完全不同的代码。
我认为正则表达式解决方案将适合此处:
Regex.Replace(
FigureCode,
"(hd-\\d+-)\\d+",
"${1}" + skinCode)
这基本上是找到一个匹配的子字符串(hd-\d+-)\d+
(hd,后跟“-”,然后是数字,再由“-”,然后是另一个数字),并将其替换为第1组(hd-\d+-
)的所有内容以及您的皮肤代码。
记住要using System.Text.RegularExpressions
!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句