文本格式:
T1
0
1
2T2
3
4
5T3
7
5
2……T10
4
3
6
以T几作为判断,对变量赋值
譬如:判断该行是T1,就对变量cnt赋值0,cnt1赋值1,cnt2赋值2,判断该行是T2,就对变量cnt3赋值3,cnt4赋值4,cnt5赋值5,…………怎么来实现?以上的四行规律随即出现,也就是说有可能文本里就
T10
4
3
6
这四行,也有可能是有多个这样的排列,求个方法,怎么来实现?

解决方案 »

  1.   

       StreamReader sr = new StreamReader();
                string str = sr.ReadLine();
                if (str.StartsWith("T1"))
                {
                    cnt=0;
                    cnt1=1;
                    cnt2=2;
                }
                if()
                 ....
      

  2.   

    还是有规律可循的,这个最好是用hashtable:  public class Tclass
      {
         public string Tn;
         public int[] num;
      }  Hashtable Ttable = new Hashtable();  StreamReader sr = new StreamReader(); 
      string str = "";
      while((str = sr.ReadLine) != null)
      {
          if (str[0] == 'T')) 
          { 
             Tclass tc = new Tclass();
             tc.Tn = str;
             int i = 0;
             while ((str =  sr.ReadLine) != "")
             {
                tc.num[i++] = int.Parse(str);
             }
             Ttable.Add(tc.Tn, tc);
          }
      }    foreach(object o in Ttable)
       {
          //对数据的处理...
       }
      

  3.   


    判断该行是T1,就对变量cnt赋值0,cnt1赋值1,cnt2赋值2,判断该行是T2,就对变量cnt3赋值3,cnt4赋值4,cnt5赋值5  没有说明白,不是很清楚你的意图
    cnt 采用数组来实现![code=C#]
                StreamReader sr = new StreamReader(); 
                string str = sr.ReadLine(); 
                if (str.substring(0,1)=='T')
                {
                  int xx= int.pare(str.substring(1))
                }
                cnt[xx++]=sr.ReadLine(); 
                cnt[xx++]=sr.ReadLine(); 
                cnt[xx]=sr.ReadLine(); 
     
    不知道对不?
      

  4.   

    你赋值只能赋到 cnt,cnt1,cnt2...
    不能赋成数组吗 cnt[0],cnt[1],cnt[2]... 
    如果能赋成数组就简单多了,如果变量名不一样的话有只能用switch/case了.
      

  5.   

    如果真的只能是变量名,那就用反射吧,呵呵,switch/case太多了毕竟让人受不了但是建议尽量使用数组、哈希表等数据结构来保存你的cntN下面给你个反射给字段赋值的例子:    class ChangeValue
        {
            private string myValue;
            public ChangeValue(string str)
            {
                myValue = str;
            }        public void WriteLine()
            {
                Console.WriteLine("MyValue is: " + myValue);
            }
        }    class Test
        {
            public static void ChangeValue()
            {
                //通过反射获取并修改字段,注意反射甚至可以修改私有字段,其他类型的是没的说了
                  ChangeValue cv = new ChangeValue("old value");
                cv.WriteLine();            Type t = ((object)cv).GetType();
                FieldInfo field = t.GetField("myValue",
                     BindingFlags.NonPublic | BindingFlags.Instance);
                field.SetValue(cv, "new value");            cv.WriteLine();
            }
        }
      

  6.   


    public class Tclass 
      { 
        public string Tn; 
        public int[] num; 
      }   Hashtable Ttable = new Hashtable();   StreamReader sr = new StreamReader(); 
      string str = ""; 
      while((str = sr.ReadLine) != null) 
      { 
          if (str[0] == 'T')) 
          { 
            Tclass tc = new Tclass(); 
            tc.Tn = str; 
            int i = 0; 
            while ((str =  sr.ReadLine) != "") 
            { 
                tc.num[i++] = int.Parse(str); 
            } 
            Ttable.Add(tc.Tn, tc); 
          } 
      }   foreach(object o in Ttable) 
      { 
          //对数据的处理... 
      }class ChangeValue
        {
            private string myValue;
            public ChangeValue(string str)
            {
                myValue = str;
            }        public void WriteLine()
            {
                Console.WriteLine("MyValue is: " + myValue);
            }
        }    class Test
        {
            public static void ChangeValue()
            {
                //通过反射获取并修改字段,注意反射甚至可以修改私有字段,其他类型的是没的说了
                  ChangeValue cv = new ChangeValue("old value");
                cv.WriteLine();            Type t = ((object)cv).GetType();
                FieldInfo field = t.GetField("myValue",
                     BindingFlags.NonPublic | BindingFlags.Instance);
                field.SetValue(cv, "new value");            cv.WriteLine();
            }
        }
      

  7.   

       怎么样才能学好java的循环结构!!!!!!!!