我定义了一个数组
我怎样判断一个值存在,并删除它
例 a:array of string;
原理已经有‘1’‘2’‘3’
我怎样判断‘2’存在并删除,数组值变成
‘1’‘3’

解决方案 »

  1.   

    你应该先编一个取子串的函数,(因为你的阿a是string类型的);
    如果是原有字符串的子串,进行删除操作,
    比如:  'abcdefghjkl'的子串可能是:'defgh'
      

  2.   

    用 Array 不方便。要手动操作全部的事情。循环判断,删除,逐个前移。用TList,TSrtingList.
      

  3.   

    我定义了一个数组
    我怎样判断一个值存在,并删除它
    例 a:array of string;
    原理已经有‘1’‘2’‘3’
    我怎样判断‘2’存在并删除,数组值变成
    ‘1’‘3’// 像你举例的这种情况,你就需要遍历数组进行比较,就是一个查找算法的实现而已,查找算法很多呀,比如冒泡,二分法等等..
      

  4.   

    Array的话只能遍历了,因为它不是基本数据类型 所以没有封装相应的方法 建议用TStrings
    的Delete方法
      

  5.   

    要操作数组字能用人工的方法就是 自己写各种查询算法咯 
    没有办法直接删除 因为一旦开辟了一个数组内存空间 那么就是静态的了 只能全部释放
    我觉得你的要求的得用链表一类的东西来实现 比如TList TStringList
      

  6.   

    a:array of string;
    b:array of string;
    i:integer; s:string;
    t:boolean;
    begin
      s:='2';
      t:=false;
      setlength(b,high(a)-1);
      for i:=low(a) to high(a)-1 do
      begin 
        if a[i]=s then t:=true;
        if t then b[i]:=a[i+1];
        else b[i]:=a[i];
      end;
    end;
    ////////////以上是比较笨的办法,其实象你上面所述,直接用STRING就行了,他本身就是个数字,而且支持DELETE。数组就麻烦了,它的删除往往要影响后面的元素。