如果我有字符串“freq1”或“freq12”等等,我怎样才能除去freq以及数字呢?
答案 0 :(得分:3)
string foo = "freq12";
string fooPart = foo.Substring(4); // "12"
int fooNumber = int.parse(fooPart); // 12
如果“freq”部分不是常数,那么你可以使用正则表达式:
using System.Text.RegularExpressions;
string pattern = @"([A-Za-z]+)(\d+)";
string foo = "freq12";
Match match = Regex.Match(foo, pattern);
string fooPart = match.Groups[1].Value;
int fooNumber = int.Parse(match.Groups[2].Value);
答案 1 :(得分:2)
是否总是将文本 freq 添加到字符串中的数字前面?如果是这样,您的解决方案非常简单:
var str = "freq12";
var num = int.Parse(str.Substring(4));
编辑:如果字符串的第一部分并非总是“freq”,这是一种更通用的方法。
var str = "freq12";
int splitIndex;
for(splitIndex = 0; splitIndex < str.Length; splitIndex++)
{
if (char.IsNumeric(str[splitIndex]))
break;
}
if (splitIndex == str.Length)
throw new InvalidOperationException("The input string does not contain a numeric part.");
var textPart = int.Parse(str.Substring(0, splitIndex));
var numPart = int.Parse(str.Substring(splitIndex));
在给定示例中,textPart
应评估为 freq ,numPart
评估为 12 。如果这仍然不是你想要的,请告诉我。
答案 2 :(得分:0)
尝试这样的事情:
String oldString = "freq1";
String newString = oldString.Replace("freq", String.Empty);
答案 3 :(得分:0)
如果您知道“freq”这个词总是在那里,那么您可以执行以下操作:
string number = "freq1".Replace("freq","");
这将导致“1”。