我试图在23 23 23和00 00之间得到号码。
例如,我在文本文件中的行为23 23 23 45 45 00 00。 我怎么能得到45 45字符串。 我试过
public static string getBetween(string strSource, string strStart, int bytes)
{
int Start = 0, End = 0;
{
Start = strSource.IndexOf(strStart, 0) + strStart.Length;
End = Start + (bytes * 3) - 2; //because we know the size of string
return strSource.Substring(Start, End - Start);
}
}
答案 0 :(得分:0)
您的End
必须是:
End = strSource.IndexOf("00 00");
答案 1 :(得分:0)
例如:
string x = "23 23 23 45 45 00 00";
const string firstPattern = "23";
const string lastPattern = "00";
int idx1 = x.LastIndexOf(firstPattern);
int idx2 = x.IndexOf(lastPattern);
string result = (x.Substring(idx1 + firstPattern.Length, idx2 - idx1 - firstPattern.Length)).Trim();
答案 2 :(得分:0)
我认为这个实现更灵活,因为不假设固定的开始/结束字符串长度,但引入了更复杂的方法,因为它使用正则表达式。
public static string getBetween(string input, string start, string end)
{
var match = Regex.Match(input, String.Format("{0}(.*?){1}",
Regex.Escape(start), Regex.Escape(end)));
if (match.Success)
return match.Groups[1].Value;
return null;
}
答案 3 :(得分:0)
很难说这里的规则是什么,我猜你想要“第4列和第5列”。
string stringScr = "23 23 23 45 45 00 00";
string [] cols = stringScr.Split(" ");
string result=cols[3]+" "+cols[4];
请注意,这种方式也会将它们视为“个人”号码,我认为这就是您想要的。
答案 4 :(得分:0)
static void Main(string[] args)
{
String str = "23 23 23 45 45 00 00";
int index1=str.LastIndexOf("23");
int index2 = str.IndexOf("00");
index2 -= 3;
str=str.Substring(index1+3, index2 - index1).Trim();
}
答案 5 :(得分:0)
这将允许您在空格分隔列表中获取第二个(或任何其他)集。
/// <summary>
/// Gets a specified set of values from a string
/// </summary>
/// <param name="set">The 1-based numbered set. To get the second set, pass 2.</param>
/// <param name="str">A space-separated string with all of the values</param>
/// <returns>A space-separated string with the specified set of values.</returns>
private static string GetNthSet(int set, string str)
{
string output = string.Empty;
string[] parts = str.Split(' ');
List<string> used = new List<string>();
foreach (var part in parts)
{
if(!used.Contains(part))
{
used.Add(part);
}
if(used.Count == set)
{
output += part + " ";
}
else if(used.Count > set)
{
break;
}
}
return output.Trim();
}