如何将长字符串拆分为“包裹”字符串?

时间:2011-03-03 16:54:04

标签: delphi string

如何在Delphi中执行此操作?

我有一个很长的字符串。 我需要每隔5个字母包裹一下sting,并在包裹的字符串末尾添加一个点。

示例字符串:

ssssssssssssssssssssssssssssssssssssssssssssssssssssssssss

结果:

sssss. 
sssss. 
sssss. 
sssss.

4 个答案:

答案 0 :(得分:7)

你的老师可能希望你学习足够的pascal来写这样的东西:

 loop through the characters in the string
   get a character from the string and add it to another string
   check if five letters have gone by, and if so, 
      add a dot and a carriage-return-and-linefeed character.
 end loop

答案 1 :(得分:4)

uses SysUtils;

Result := WrapText(s, '.'^M^J, [], 5);

但要注意the documentation中的这个说明:

  

WrapText不会在嵌入的带引号的字符串中插入中断。

答案 2 :(得分:0)

以下内容:

while Length(s) > 0 do
begin
  Result := Result + '. ' + Copy(s, ...);
  Delete(s, ...);
end;

答案 3 :(得分:0)

这个只适用于最近的Delphi:

  for c in s do
  begin
    Write(c);
    if i mod maxSize=maxSize-1 then
      WriteLn('.');
    inc(i);
  end;

遍历所有字符

  for i := 1 to length(s) do
  begin
    Write(s[i]);
    if i mod maxSize=0 then
      WriteLn('.');
  end;

复制块

  for i := 0 to length(s) div maxSize do
    WriteLn(Copy(s,1+i*maxSize,maxSize),'.');