我有一个包含19个字符的字符串,如果我的字符串是:
123456789012345789
我想这样显示:
123456 ********* 7890
第7个字符或第15个字符的含义我想用*
掩盖字符。我可以用什么方法来实现这个目标?
答案 0 :(得分:4)
FUNCTION ReplaceInString(CONST Source : STRING ; StartPos,Length : Cardinal ; NewChar : CHAR): STRING;
VAR
P : INTEGER;
BEGIN
Result:=Source;
FOR P:=StartPos TO PRED(StartPos+Length) DO
IF (P>=LOW(STRING)) AND (P<=LENGTH(Result)-(1-LOW(STRING))) THEN
Result[P]:=NewChar
END;
如果您不关心支持基于0的字符串(对于移动编译器),那么您可以使用它:
FUNCTION ReplaceInString(CONST Source : STRING ; StartPos,Length : Cardinal ; NewChar : CHAR): STRING;
VAR
P : Cardinal;
BEGIN
Result:=Source;
FOR P:=StartPos TO PRED(StartPos+Length) DO
IF (P>=1) AND (P<=LENGTH(Result)) THEN
Result[P]:=NewChar
END;
将其用作:
WRITELN(ReplaceInString('123456789012345789',7,9,'*'))