如何计算字符串中的字符,不包括某些类型?

use*_*092 5 delphi string counting

我需要确定文本框中的字符总数并在标签中显示该值,但是需要排除所有空格.

这是代码:

var     
sLength : string;
i : integer;
begin
     sLength := edtTheText.Text;
     slength:= ' ';
     i := length(sLength);

     //display the length of the string
     lblLength.Caption := 'The string is ' +  IntToStr(i)  + ' characters long';
Run Code Online (Sandbox Code Playgroud)

Dav*_*nan 11

您可以像这样计算非空格字符:

uses
  Character;

function NonWhiteSpaceCharacterCount(const str: string): Integer;
var
  c: Char;
begin
  Result := 0;
  for c in str do
    if not Character.IsWhiteSpace(c) then
      inc(Result);
end;
Run Code Online (Sandbox Code Playgroud)

这用于Character.IsWhiteSpace确定字符是否为空格.根据Unicode规范,当且仅当字符被分类为空格时才IsWhiteSpace返回True.因此,制表符被视为空格.