我有一個字符串,我需要與另一個字符串數組相匹配。如果我發現匹配這兩個數組值,那麼我必須從字符串中拆分數字值,並用該數值添加,並用新值附加實際字符串。我嘗試了一些拆分和連接。但我沒有得到正確和有效的方法來解決問題。以下是我的情況。最簡單的方法增加一個實際的字符串值
實際字符串:
BK-TS00023,X1-TS00000101,X4-A10000024,Y1-3,
比較字符串
BK Books // Compare first two characters => BK Books matches with BK-TS00023
X1 Serials // Compare first two characters => X1 Serials matches with X1-TS00000101
所以,當我發現與之相匹配的這些字符串,我需要得到像的數值, 並將值增加1.然後附加默認字符串。由此產生的字符串將是這樣的。
結果字符串
'BK-TS00024',
'X1-TS00000102',
'X4-A10000025',
'Y1-4'
我嘗試下面的方法。請任何人都幫我提供正確的方法來做這種情況。
代碼
InfoType="BK Books"; // or "X1 Serials" // or etc ..
var splitInfo = InfoType.Split(' ');
var SiteFileInfo = Db.SiteFiles.Where(asd => asd.Code == "AutoBarcode").Select(asd => asd.Line1).FirstOrDefault();
var splitSiteFile = SiteFileInfo.Split(',');
int cnt = 0;
foreach (var s in splitSiteFile)
{
cnt += 1;
if (s.Contains(splitInfo[0]))
{
//var infoSiteSplit = s.Split('-');
var olyNumber = Regex.Split(s, @"(?<=\p{L})(?=\p{N})");
int i = 0;
string Truncstring = "";
foreach (var a in olyNumber)
{
bool result = int.TryParse(a, out i);
if (result)
{
i += 1;
int befconv = Convert.ToInt32(a);
Truncstring = s.Replace(befconv.ToString(), i.ToString());
}
}
splitSiteFile[cnt - 1] = Truncstring;
string JoinString = string.Join(",", splitSiteFile);
Db.ExecuteStoreCommand("update SiteFile set Line1={0} where Code={1}", JoinString, "AutoBarcode");
Db.SaveChanges();
return Truncstring;
}
}
這裏您的預期輸出是什麼? 'BK-TS00024 X1-TS00000102'? – jomsk1e
它的兩個字符串..'BK-TS00024','X1-TS00000102'..請參閱更新代碼。 – UniqueChar