string str = "84-1-2"; //想从2开始截取截取到2前面的-怎么做?
先逆置,再根据“-”截取
string[] aStr = str.split('-');
迴圈從aStr取出
不管从前从后两个索引确定了就行了
str = str.Substring(0, str.Length - 1);
说说你到底想获取什么?
使用LastIndexOf
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string str = "84-1-2-4-5-3-6"; string[] strarr = str.Split('-'); for (int i = 0; i < strarr.Length/2; i++) { swap(ref strarr[i], ref strarr[strarr.Length-1 - i]); } string output = string.Empty; foreach(var item in strarr) { output += "-"+item; } Console.WriteLine(output.Substring(1)); Console.ReadKey(); } public static void swap(ref string str1,ref string str2) { string temp = string.Empty; temp = str1; str1 = str2; str2 = temp; } } }
我猜你是在做计算的词法分析部分吧?我最近也在做这个。去简单学一下正则表达式吧,用起来很方便的。
我这个好用:LastIndexOf(位置,个数)
string a = "84-1-2"; int num = a.LastIndexOf("-"); //结果 2 Console.WriteLine(a.Substring(a.LastIndexOf("-") + 1, a.Count()-num-1)); Console.Read();