zoukankan      html  css  js  c++  java
  • 从字符串中提取单词、从字符串中提取汉字的函数


    {从字符串中提取单词的函数}
    procedure StrToWordList(str: string; var List: TStringList);
    var
      p: PChar;
      i: Integer;
    begin
      if List = nil then List := TStringList.Create;
      List.Clear;
      {去除重复}
      List.Sorted := True;
      List.Duplicates := dupIgnore;
      
      p := PChar(str);
    
      {把单词以外的字符转为空格, 并把大写字母转小写}
      while p^ <> #0 do
      begin
        case p^ of
          'A'..'Z': p^ := Chr(Ord(p^) + 32);
          'a'..'z', '0'..'9', '''', '-': ;
          else p^ := #32;
        end;
        Inc(p);
      end;
    
      {用空格分离单词到列表}
      List.Delimiter := #32;
      List.DelimitedText := str;
    
      {单词的开头应该是字母, 去除其他}
      for i := List.Count - 1 downto 0 do
      begin
        if CharInSet(List[i][1], ['0'..'9', '-', '''']) then
        List.Delete(i);
      end;
    end;
    
    {从字符串中提取汉字的函数}
    procedure StrToHanZiList(str: string; var List: TStringList);
    var
      p: PWideChar;
    begin
      if List = nil then List := TStringList.Create;
      List.Clear;
      {去除重复}
      List.Sorted := True;
      List.Duplicates := dupIgnore;
      
      p := PWideChar(str);
      while p^ <> #0 do
      begin
        case p^ of
          #$4E00..#$9FA5: List.Add(p^);
        end;
        Inc(p);
      end;
    end;
    
  • 相关阅读:
    Java自学笔记(21):【IO】数据流,标准输入输出
    makefile 学习笔记
    tensorflow 环境搭建
    matlab
    【转】MATLAB各种矩阵生成函数
    leetcode刷题收获
    leetcode 15. 3Sum
    STL 记录
    leetcode 服务器环境
    visual studio 2017 使用笔记
  • 原文地址:https://www.cnblogs.com/del/p/1435722.html
Copyright © 2011-2022 走看看