Delphi中的字符串问题

Lit*_*per -2 delphi string delphi-7

我有一个随机的数字串
(数字只能使用一次,只能使用1-9,几乎任何长度(最小1,最大9)):

var
Input: String;
begin
Input := '431829576'; //User inputs random numbers
Run Code Online (Sandbox Code Playgroud)

而现在我需要获得指定的数字.如何5.

var
Number: Integer;
begin
Number := 5;
Run Code Online (Sandbox Code Playgroud)

和函数执行结果543182976.

我没有任何想法如何制作这样的功能,谢谢.

And*_*and 9

你的意思是这样的吗?

function ForceDigitInFront(const S: string; const Digit: Char): string;
begin
  result := Digit + StringReplace(S, Digit, '', []);
end;
Run Code Online (Sandbox Code Playgroud)

更轻量级的解决方案是

function ForceDigitInFront(const S: string; const Digit: Char): string;
var
  i: Integer;
begin
  result := S;
  for i := 1 to Length(S) do
    if result[i] = Digit then
    begin
      Delete(result, i, 1);
      break;
    end;
  result := Digit + result;
end;
Run Code Online (Sandbox Code Playgroud)

  • 如果`S`不包含`Digit`怎么办?"51234"是输入"1234"和"5"的所需输出吗? (4认同)