对于一个小问题我有一个简单的解决方案,但是作为一个新手开发人员,我总是想学习更正确/更好的方法来做某事。目前,我得到一个或多或少看起来像这样的字符串......
一些随机文本,参考编号:Supp-1234 和一些随机文本......
现在,如果我们假设这种情况并且我们只想获得参考号的数字部分,我们可以做这样的事情......
int firstCharacter = mystring.IndexOf("Supp-", StringComparison.InvariantCultureIgnoreCase);
myIssueId = firstCharacter != -1 ? mailItem.Subject.Substring(firstCharacter + 5, 4) : "";
但是现在,假设我们得到一个参考号 Supp-12345,现在这将不起作用。你可以试试这样的...
int firstCharacter = mystring.IndexOf("Supp-", StringComparison.InvariantCultureIgnoreCase);
if (firstCharacter != -1)
{
string temp = mystring.Substring(firstCharacter + 5, 5);
try
{
int x = Convert.ToInt32(temp); // to ensure it is indeed a number
}
catch (Exception)
{
temp = mystring.Substring(firstCharacter + 5, 4); // it is 4 digits, not 5
}
myIssueId = temp;
}
现在我的问题是这个。如何改进此代码?它有点太乱了,我不喜欢。任何想法将不胜感激。