![](/img/trans.png)
[英]What is the easiest way to get certain values from string if the length changes?
[英]the easiest way to get number from string
我想從字符串中檢索一些數字,例如“ valueID = 234232”或“ valueID = 2”或“ valueID = 23”或“ valueID = 2”或“ valueID = 234”,那么什么是最簡單的方法假設此數字之后是空格“”或行尾?
string input = "valueID = 234232";
var split = input.Split(new char[] {'='});
int value = int.Parse(split[1].Trim());
只要您確定里面會有一個數字
int.parse( Regex.match(String, @"\d+").value)
如何使用正則表達式:
Match match = Regex.Match(input, @"\d+");
if (match.Success)
{
number = int.Parse(match.Value);
}
這是我一直使用的一些靈活的代碼:
public const string FilterDigits = "0123456789";
public const string FilterLetters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
/// <summary>
/// Strips away any characters not defined in validChars and returns the result.
/// </summary>
public static string FilterTo(string text, string validChars)
{
StringBuilder Result = new StringBuilder();
for (int i = 1; i <= text.Length; i++) {
char CurrentChar = Convert.ToChar(Strings.Mid(text, i, 1));
if (validChars.Contains(CurrentChar)) {
Result.Append(CurrentChar);
}
}
return Result.ToString;
}
然后,您可以致電:
int.parse(FilterTo("valueID=23", FilterDigits));
也可以將其轉換為方便的擴展方法,然后可以執行以下操作:
int.parse("valueID=23".FilterTo(FilterDigits));
一旦解析了可能的數字(通過正則表達式,拆分,substr等),TryParse就是一個很大的改進(至少從.NET 3.5開始):
string myPotentialNumber = "1";
int myNumber;
bool isNumber = int.TryParse(myPotentialNumber, out myNumber);
if( isNumber )
{
//do something
}
else
{
//throw error
}
TryParse()是異常安全的,這使得它對於許多類型的轉換而言都更快,更干凈。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.