如何去掉字符串中的 英文 和 标点符号(包括全角的标点符号 )
例如:varstr:widestring;
str:=' 广 gd 东 。。@@@ 省';
想得到的结果如下:
'广东省'

解决方案 »

  1.   

    var s,t : string;
        i : integer;
    begin
      s :=' 广 gd 东..@@@ 省';
      for i:=0 to length(s) do
        begin
          if (ord(s[i])>128) then t:=t+s[i];
        end;
          showmessage(t);
    end;
      

  2.   

    for i:=1 to length(s) do
      

  3.   

    drift1981(一包香烟,一把吉他,浪迹天涯)  你的代码不能去掉全角的标点符号
      

  4.   

    //我没有好的办法,只有这个,呵呵!
    type
      TChnChar = string[4];var
      Sign: array [1..7] of String = ('a3ac','a1a3','a3bf','a3bb','a3ba','a1af','a1b1');function CharIsSign(Ch: TChnChar): Boolean;
    var
      i: integer;
    begin
      Result := False;
      for i:=1 to 7 do
        if Ch = Sign[i] then
          begin
            Result := True;
            Exit;
          end;
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
      S: String;
      T: String;
      Chn: TChnChar;
      i: integer;
    begin
      S :=' hottey,你好吗”?';
      T := '';
      i := 1;
      while i <= Length(S) do
      begin
        if (Ord(S[i]) > 128) then
          begin
            Chn := LowerCase(IntToHex(Ord(S[i]), 2) + IntToHex(Ord(S[i+1]), 2));
            if CharIsSign(Chn) then
              begin
                Inc(i, 2);
                Continue;
              end else
                T := T + S[i];
          end;
          Inc(i);
      end;
      ShowMessage(T);
    end;//运行后得出结果:     你好吗
      

  5.   

    符号对应表:
    ,   'a3ac'
    。   'a1a3'
    ?   'a3bf'
    ;   'a3bb'
    :   'a3ba'
    ‘   'a1af'
    “   'a1b1'//CharIsSign判断是否为上述全角标点符号
      

  6.   

    楼上的名字应该为
    hottey(孤独的探索者)(我是一强人)